结论:
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的解析
待续。。。
本文深入探讨了Set家族的不同成员,包括TreeSet、HashSet和LinkedHashSet的特点和应用场景。TreeSet提供了排序和部分查找功能,但不能存储null值;HashSet则以高效插入著称,允许存储null值;LinkedHashSet保持了插入顺序,同时提供了较快的遍历速度。
306

被折叠的 条评论
为什么被折叠?



