当前位置: 首页 > news >正文

Java Set

一、核心特性

• 无序性:存储顺序与插入顺序无关(HashSet 完全无序,LinkedHashSet 保持插入顺序)。

• 唯一性:元素不可重复,依赖 equals() 和 hashCode() 方法判断。

• 无索引:不能通过下标访问元素,遍历需用迭代器、增强 for 循环。

二、主要实现类及区别

1. HashSet(最常用)

• 底层:哈希表(数组 + 链表/红黑树),查询、添加、删除效率高(O(1))。

• 特点:完全无序,允许存储 null 元素(仅一个)。

• 去重关键:存入元素需重写 hashCode() 和 equals(),确保相同元素哈希值一致且 equals 为 true。

2. LinkedHashSet

• 底层:哈希表 + 双向链表,兼具 HashSet 效率和有序性。

• 特点:保持元素插入顺序,遍历顺序与插入顺序一致,性能略低于 HashSet。

3. TreeSet

• 底层:红黑树(自平衡二叉排序树),元素会自然排序或自定义排序。

• 特点:无 null 元素(会抛空指针异常),排序依赖 Comparable 或 Comparator。

• 排序方式:

◦ 自然排序:元素类实现 Comparable 接口,重写 compareTo() 方法。

◦ 自定义排序:创建 TreeSet 时传入 Comparator 接口实现类(或 Lambda 表达式)。

三、常用方法(实现 Collection 接口,核心方法如下)

• 添加:add(E e)(重复元素返回 false,不存入)、addAll(Collection c)。

• 删除:remove(Object o)、removeAll(Collection c)、clear()(清空集合)。

• 判断:contains(Object o)(判断是否包含元素)、isEmpty()(判断是否为空)。

• 遍历:增强 for 循环(for (E e : set) {})、迭代器(Iterator<E> it = set.iterator();)。

• 其他:size()(获取元素个数)、toArray()(转为数组)。

四、关键注意点

1. 去重逻辑:HashSet/LinkedHashSet 中,若元素未重写 hashCode() 和 equals(),会默认使用 Object 类的方法(仅判断地址值),导致无法去重。

2. TreeSet 排序冲突:若元素既不实现 Comparable,也未指定 Comparator,会抛 ClassCastException。

3. 线程安全:Set 接口的实现类(HashSet、LinkedHashSet、TreeSet)均非线程安全,多线程环境需用 Collections.synchronizedSet(Set) 或 CopyOnWriteArraySet。

http://www.dtcms.com/a/614684.html

相关文章:

  • (60页PPT)数据治理与数据安全防护方案(附下载方式)
  • DSAC-T算法实现控制倒立摆
  • 学校网站建设需要多少钱wordpress添加首页导航
  • 开发区网站制作公司wordpress+系统安装
  • 什么是性能测试?它的分类?(负载测试、压力测试、并发测试等)
  • 4.3 Go 协程:goroutine
  • 查询缓存8.0
  • 【PostgreSQL】查询所有表和视图
  • 页面布局练习
  • Cortex-M3 02-地址映射
  • 大丰做网站哪家公司好大理州城乡建设局官方网站
  • 推荐做素菜的网站电商网站开发环境怎么写
  • 企业建设网站的功能是什么意思wordpress单用户案例
  • 曼朗策划网站建设新闻源
  • 网站美工怎么做网站注册时间查询
  • 网站开发 免代码网站三网合一
  • 网站的建设服务平台昆山网站制作
  • [特殊字符]pull-aliyun:一键拉取阿里云私有镜像并简化命名
  • 1.2 学习和使用汇编语言的目的
  • 电子商务网站建设需要的语言沐风wordpress
  • SpringMVC请求参数的绑定
  • C++03 标准详解:C++98的技术修订版
  • 网站做下载wordgoogle网站推广
  • 网站虚拟机可以自己做吗查询百度关键词排名
  • Java 实战:去重与排序(HashSet+TreeSet 应用)
  • 命令行核心概念:信号、标准流与作业控制 (对比 Unix, cmd.exe, PowerShell)
  • wordpress仿站难吗央视优购物官方网站
  • 网站设计设计目的漳州做网站含博大选
  • 阿里云网站301重定向怎么做买证书网站开发工程师
  • 北京网站搜索引擎优化江苏宿迁房产网