首页 > 编程语言 > 详细

Java集合之Set

时间:2019-12-03 20:02:56      阅读:64      评论:0      收藏:0      [点我收藏+]

Set 无序,唯一


 

HashSet
底层数据结构是哈希表。(无序,唯一)
如何来保证元素唯一性?
1.依赖两个方法:hashCode()和equals()

LinkedHashSet
底层数据结构是链表和哈希表。(FIFO插入有序,唯一)
1.由链表保证元素有序
2.由哈希表保证元素唯一

TreeSet
底层数据结构是红黑树。(唯一,有序)
1. 如何保证元素排序的呢?
自然排序
比较器排序
2.如何保证元素唯一性的呢?
根据比较的返回值是否是0来决定

 

三者都不是线程安全的,如果要使用线程安全可以Collections.synchronizedSet()

HashSet插入数据最快,其次LinkHashSet,最慢的是TreeSet因为内部实现排序

排序 : HashSet不保证有序,LinkHashSet保证FIFO即按插入顺序排序,TreeSet安装内部实现排序,也可以自定义排序规则
null  : HashSet和LinkHashSet允许存在null数据,但是TreeSet中插入null数据时会报NullPointerException、

 

Java集合之Set

原文:https://www.cnblogs.com/ywblogs/p/11978668.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!