在Java的诸多类中,容器类是一个使用频率极高的类,尤其是其中的ArrayList类和HashMap类。Collection类有包括List,Map还有Set,各自持有自己的特性,他们之间有一点共性就是,由于Collection是Iterable接口的子接口,所以他们之间都有迭代器,使用的方法相同,先由Collection类的对象通过iterator()方法产生一个迭代器,来遍历集合对象中的所有数据。

     此外,从J2SE 1.5开始,集合对象用泛型进行了改写,使用<>来标注集合对象中存储的对象的类型,避免了从集合中取出变量还要进行强制类型转化的繁琐。

一、List(ArrayList和LinkedList)

     这两个在之前的笔记中已经写过了,这里就不赘述了

二、Set(HashSet,TreeSet和EnumSet)

      List中的对象是允许重复的,但是Set中的对象都是唯一的,在定义类时,最好从新定义一下equals()和hashCode()方法,因为在比较两个HashSet容器中的对象是否相同的时候,先比较hashCode()然后再利用equals()方法,HashSet容器会对其中的对象进行排序,与被加入的顺序不同。如果使用的是HashSet的子类LinkedHashSet,就可以按照加入的顺序进行迭代。

     TreeSet使用红黑树的结构来对加入的对象进行排序。如果要对对象自定义排序的规则,就要定义一个实现Java.util.Comparator接口的对象,并且实现方法compare().

     EnumSet是针对枚举对象的数据集

三、Map(HashMap,TreeMap,EnumMap)

      类比Set也有三类

版权声明:本文为ITEagle原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/iteagle/archive/2010/03/07/1680274.html