set接口,HashSet类,TreeSet类,LinkedHashSet类

set接口

特点:
1.唯一
2.无序
3.可以存储null值,但是null值不能重复

HashSet类

特点:
此类实现Set接口,由哈希表(实际为HashMap实例)支持。
对集合的迭代次序不做任何保证;
特别是,它不能保证订单在一段时间内保持不变。这个类允许null元素

1.底层数据结构是哈希表结构,底层是通过HashMap实现
2.无序
3.允许null值
4.唯一

哈希算法原理:
1.哈希算法和对象本身有关
2.哈希算法和对象本身的hashCode有关
hashCode在没有重新hashCode方法的情况下就是地址值的一个转换值,可以理解为地址值
3.尽量保证哈希值唯一,但是不能绝对保证

哈希表结构原理:
哈希表结构如何保证元素的无序的?依赖的是随机的哈希算法产生的索引
哈希表结构如何保证元素唯一的?依赖的是hashCode和equals方法

过程是:

首先比较两个元素的hashCode是否相等
			相等
					比较两个元素的equals方法是否相等
					相等
							表示同一个元素,就不会存储在集合中
					不相等
							表示不是同一个元素,存储到集合中
			不相等
					说明两个元素不相等,直接存储

TreeSet类

特点:
1.可排序
2.唯一
3.底层数据结构是二叉树

LinkedHashSet类

特点:
底层数据结构是哈希表和链表
链表保证元素有序
哈希表保证元素唯一

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值