结论:
Set家族:不重复、不可查找
子类:TreeSet(不可以存null 有序)、HashSet(可以存null、无序 、插入速度高效)、LinkedHashSet(可以存null,插入循序,插入速度中,遍历快)
一、关于Set
关于Set本身在API上看是没有什么扩展的,我们通常把List、Set、队列、映射集统称为集合。而这类的Set更像一个狭义的集合概念(类似于数学的集合定义),它规定了一类元素不重复、不可查找的特性的集合。
这里还需要介绍一下SortedSet、NavigableSet两个Set的子接口,NavigableSet 继承 SortedSet 继承Set。首先SortedSet扩展了Set的不可查找限定,提供了一些可以查找的方法,NavigableSet更进一步扩展了检索元素的方法。这里需要重点强调的是SortedSet提供了一个comparator方法,这个我们将在比较器中详细介绍。其它的检索元素的方法我们在TreeSet子集中再讲。
二、HashSet
无序集合,可以存放null在Set的子类中效率是最高的一个。其实内部存储实际上是使用的HashMap来实现,保存时只用key。也就是说HashSet内部是map.put(set, new Object())这样来保存元素的。详细见HashMap的解析
待续。。。