码迷,mamicode.com
首页 > 编程语言 > 详细

Java集合之Set

时间:2019-12-03 20:09:26      阅读:87      评论:0      收藏:0      [点我收藏+]

标签:col   数据结构   使用   返回   返回值   hash   exce   数据   排序   

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

标签:col   数据结构   使用   返回   返回值   hash   exce   数据   排序   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!