HashSet、LinkedHashSet和TreeSet三者区别与联系
来源:互联网 发布:法里内利 知乎 编辑:程序博客网 时间:2024/05/16 17:10
一.HashSet
特点:
1.HashSet中不能有相同的元素,可以有一个Null元素,存入的元素是无序的。
2.HashSet如何保证唯一性?
1).HashSet底层数据结构是哈希表,哈希表就是存储唯一系列的表,而哈希值是由对象的hashCode()方法生成。
2).确保唯一性的两个方法:hashCode()和equals()方法。
3.添加、删除操作时间复杂度都是O(1)。
4.非线程安全
二.LinkedHashSet
特点:
1.LinkedHashSet中不能有相同元素,可以有一个Null元素,元素严格按照放入的顺序排列。
2.LinkedHashSet如何保证有序和唯一性?
1).底层数据结构由哈希表和链表组成。
2).链表保证了元素的有序即存储和取出一致,哈希表保证了元素的唯一性。
3.添加、删除操作时间复杂度都是O(1)。
4.非线程安全
三.TreeSet
特点:
1.TreeSet是中不能有相同元素,不可以有Null元素,根据元素的自然顺序进行排序。
2.TreeSet如何保证元素的排序和唯一性?
底层的数据结构是红黑树(一种自平衡二叉查找树)
3.添加、删除操作时间复杂度都是O(log(n))
4.非线程安全
四.总结:
通过以上特点可以分析出,三者都保证了元素的唯一性,如果无排序要求可以选用HashSet;如果想取出元素的顺序和放入元素的顺序相同,那么可以选用LinkedHashSet。如果想插入、删除立即排序或者按照一定规则排序可以选用TreeSet。
0 0
- HashSet、LinkedHashSet和TreeSet三者区别与联系
- HashSet、LinkedHashSet和TreeSet三者区别与联系
- HashSet LinkedHashSet和TreeSet区别
- HashSet TreeSet LinkedHashSet 区别
- HashSet、LinkedHashSet、TreeSet区别
- HashSet TreeSet LinkedHashSet 区别
- HashSet,TreeSet和LinkedHashSet的区别
- HashSet,TreeSet和LinkedHashSet的区别
- HashSet,TreeSet和LinkedHashSet的区别
- HashSet,TreeSet和LinkedHashSet的区别
- HashSet,TreeSet和LinkedHashSet的区别
- HashSet,TreeSet和LinkedHashSet的区别
- HashSet,TreeSet和LinkedHashSet的区别
- HashSet,TreeSet和LinkedHashSet的区别
- HashSet,TreeSet和LinkedHashSet的区别
- HashSet,TreeSet和LinkedHashSet的区别
- HashSet,TreeSet和LinkedHashSet的区别
- HashSet,TreeSet和LinkedHashSet的区别
- jQuery函数attr()和prop()的区别
- 读书小记
- 网易机试-赶去公司
- 蓝桥杯-第39级台阶
- Win64 驱动内核编程-23.Ring0 InLineHook 和UnHook
- HashSet、LinkedHashSet和TreeSet三者区别与联系
- SAP HANA取表中每行最小值
- 【Android眼中的IOS】使用16进制颜色值生成UIColor
- Api 25 Reference-->andriod
- override报错,继承自接口的类报错:***must override a superclass method
- Javascript和Java的区别
- 【NOI2003T4】逃学的小孩-贪心+树形DP求直径+倍增LCA
- 最新-如何在Windows server 2008中配置IIS 75的ISAPI和CGI限制
- 递归递推之螺旋方阵