java Collection学习

来源:互联网 发布:上海一姐张弦淘宝店 编辑:程序博客网 时间:2024/06/13 22:26

java Collection理解

      我一直不太理解java里面的集合架构,今天花了一些时间对其进行全面的学习。

     Collection是一个接口,它是集合的祖宗。

     集合和数组最大的区别是集合只能存储引用数据类型,不能存储基本数据类型;还有就是集合的长度是可变的,数组是不可变的。

     java Collection 架构是:                                                         

                                                                                          Collection

                                                                                                  |

                                      --------------------------------------------------------------------------------------------

                                     |                                                                                                              |

                                  List                                                                                                         Set

                   ----------------------------------                                                                    -----------------------------------

                   |                 |                     |                                                                  |                                          |

         ArrayList         Vector            LinkedList                                                HashSet                                 TreeSet  

Collection,List和Set都是接口,List和Set继承Collection。

Collection特点:Collection没有成员变量变量,只有增删改查方法。Collection有下标


List的特点:List是有序集合,可重复,有下标。

ArrayList的特点:它是List的子类,其内部封装了一个可变长度的数组,默认大小为10。由于每个元素都有下标,所以查询速度很快。 当需要查询数据的时候使用最好

Vector的特点:Vector与ArrayList一样,也是通过数组实现的,不同的是它支持线程的同步,即某一时刻只有一个线程能够写Vector,避免多线程同时写而引起的不一致性,       实现同步需要很高的花费,因此,访问它比访问ArrayList慢。

LinkedList的特点:它也是List的子类,为链表结构,长度可变。由于是链表所以增加与删除第一与最后一个的速度快。 当需要频繁对元素进行增删的时候用最好 


Set的特点:Set是Collection的子类,也是接口,但无序,元素不重复

HashSet的特点:它是Set的子类,底层是hash表结构,所以查询速度比较快

TreeSet的特点:他也是Set的子类,底层是二叉树结构 。进行自然排序,所以存取的数据是有序的


提到集合也会想到Map,它也是接口。它没有继承Collection接口。Map提供key到value的映射。一个Map中不能包含相同的key,每个key只能映射一个value。

它的子类有HashMap和HashTable.



0 0