Java-Collection-集合详解

集合体系图

在这里插入图片描述
在这里插入图片描述

Set集合

1.set集合的特点

Set集合特点是无序唯一

2.set集合的唯一性如何保证

对象引用相等性与对象相等性参考:java对象相等判断
Set集合就是对比对象的相等性来保证元素的唯一性,但hashCode相等的时候并不一定保证元素唯一,还有对比equal方法是否相等,只有hashCode和equal同时相等,才认为是相同元素,Set集合只会保存其中一个元素。

Set集合两种存储形态:

	A:hashCode相同   而equal不相同的情况   此时认为元素只是在相同的哈希桶内

	B:hashCode不同

在这里插入图片描述
ArrayList和HashSet都有判断元素是否已经存在的方法:

contains();
ArrayList只是用了equal方法判断
HashSet使用了 hashCode和equals

3.set集合实现类分析

类型 实现使用map对象 数据结构
HashSet HashSet 散列表(拉链法)
LinkedHashSet LinkedHashSet 双向链表+散列表(拉链法)

3.1 HashSet

HashSet底层是以hash表实现,线程不安全,效率高,存取速度快。

3.2 TreeSet

红-黑树的数据结构,默认对元素进行自然排序(String)。如果在比较的时候两个对象返回值为0,那么元素重复。

TreeSet默认排序方式为自然排序,既然有排序方式,肯定可以指定排序规则,下面有两种方式可以指定TreeSet的排序规则

1: 元素自身具有排序规则
元素自身具备比较性,需要元素实现Comparable接口,重写compareTo方法,也就是让元素自身具备比较性,这种方式叫做元素的自然排序也叫做默认排序。
例如Set里面存储String类型的数据,Stri

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值