Java散列集Set 树集TreeSet HashSet LinkedHashSet SortedSet NavigableSet

来源:互联网 发布:传世辅助源码 编辑:程序博客网 时间:2024/06/07 20:14

结论:

Set家族:不重复、不可查找

子类:TreeSet(不可以存null 有序)、HashSet(可以存null、无序 、插入速度高效)、LinkedHashSet(可以存null,插入循序,插入速度中,遍历快)

 

一、关于Set

    关于Set本身在API上看是没有什么扩展的,我们通常把List、Set、队列、映射集统称为集合。而这类的Set更像一个狭义的集合概念(类似于数学的集合定义),它规定了一类元素不重复、不可查找的特性的集合。   

    这里还需要介绍一下SortedSetNavigableSet两个Set的子接口,NavigableSet 继承 SortedSet 继承Set。首先SortedSet扩展了Set的不可查找限定,提供了一些可以查找的方法,NavigableSet更进一步扩展了检索元素的方法。这里需要重点强调的是SortedSet提供了一个comparator方法,这个我们将在比较器中详细介绍。其它的检索元素的方法我们在TreeSet子集中再讲。

二、HashSet

    无序集合,可以存放null在Set的子类中效率是最高的一个。其实内部存储实际上是使用的HashMap来实现,保存时只用key。也就是说HashSet内部是map.put(set, new Object())这样来保存元素的。详细见HashMap的解析

 

待续。。。

阅读全文
0 0