常用的集合有哪些

本文详细介绍了Java集合框架中的Set、List、Map三大类集合,包括它们的特点、常用实现类如HashSet、TreeSet、ArrayList、LinkedList、HashMap、TreeMap等的内部实现原理和操作特性,并探讨了线程安全的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常用的三大类集合:Set、List、Map。

1 Set

1) Set 集合属于单列集合,不允许包含重复元素;
2) 判断元素是否重复的标准为对象的 equals 方法,存在时返回 false,不存在返回 true;
3) 元素的排序规则,由相应的实现类决定,分为无序、元素大小排序、写入顺序排序;
4) 初始化大小,扩容参考 HashMap。

1.1 Set 接口、实现类:
名称 类型 线程同步 描述
Set 接口 继承了Collection接口
SortedSet 接口 继承了Set接口
HashSet 实现类 不同步 继承了AbstractSet类,实现了Set、Cloneable、Serializable接口
TreeSet 实现类 不同步 继承了AbstractSet类,实现了NavigableSet(继承了SortedSet)、Cloneable、Serializable接口
LinkedHashSet 实现类 不同步 继承了HashSet类,实现了Set、Cloneable、Serializable接口

1.2 HashSet

1) HashSet 实现了 Set 接口,继承了 AbstractSet 类,由哈希表支持,看源码可以发现是一个 HashMap 实例。
2) HashSet 不保证集合内元素的迭代顺序,特别是不保证迭代顺序永久不变,该集合运行 null 元素存在。
3) HashSet 中的元素,作为 HashMap 键值对的 Key 存储,而 Value 由一个统一的值保存。 
4) HashSet 默认初始化大小为 16,扩容加载因子为 0.75,扩容大小为原来的一倍。即一个初始化size为16的
   HashSet,元素添加到12个的时候会进行扩容,扩容后的大小为32。
备注:具体添加、读取、删除等规则需要参考 HashMap 的具体实现。
 

1.3 TreeSet
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

z.jiaminf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值