在Java中Collection、List、Set、SortedSet的关系如下图所示:
它们四个都是借口类型的,List最常使用的类有ArrayList和LinkedList,Set最常使用的类是HashSet,SortedSet最常使用的类是TreeSet。
List和Set是属于两大类的,最明显的区别就是List可以有重复元素,在add时根本不用考虑重复不重复的问题,而对于Set来说,是不能用“重复”元素的,这里“重复”的意义在《hashcode()和equals()方法的分析说明》中有详细说明。还有就是List是线性的,是有序的,而Set是无序的。
Hashset在使用过程中,要注意元素是否“重复”的问题。
TreeSet实现了SortedSet接口,它是有序的Set,在add的时候,如果不存在自然排序的规则,一定要给TreeSet一个Comparator,这样它才能进行排序。
对于Collection来说,有一个工具类Collections用于操作集合。Collections的sort方法对List进行排序。。。。
待续。。。。。