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

Java.数据结构.HashSet

目录

1 基本概念

2 数据结构

3 常用操作

3.1 add(E e):向HashSet中添加元素

3.2 remove(Object o):从HashSet中移除元素

3.3 contains(Object o):判断HashSet中是否包含指定元素

3.4 size():返回HashSet中元素的个数

3.5 isEmpty():判断HashSet是否为空

 4 优缺点:

5 注意事项


1 基本概念

  • 它只能存储唯一元素,不允许存储重复的元素。
  • HashSet允许存储null值,但只能存储一个null元素

2 数据结构

  • HashSet内部使用HashMap来实现,具体来说是使用一个数组加链表(或红黑树)的方式来存储元素。
  • HashSet根据元素的hashCode值将其分配到不同的桶中,将具有相同hashCode值的元素存储在同一个桶中,然后使用链表(或红黑树)来处理hashCode冲突。

3 常用操作

3.1 add(E e)向HashSet中添加元素
HashSet<String> set = new HashSet<>();  
set.add("apple");  
set.add("banana");

注意add 方法实际上是 boolea 类型 ,如果你要添加的 value 已经存在那么它将添加失败,返回False,反之返回 True,并不会像 HashMap 中的 put 一样后值覆盖前值。

3.2 remove(Object o)从HashSet中移除元素
set.remove("banana");
3.3 contains(Object o)判断HashSet中是否包含指定元素
boolean contains = set.contains("apple");  
System.out.println(contains);  // 输出: true
3.4 size()返回HashSet中元素的个数
int size = set.size();  
System.out.println(size);  // 输出: 1 (假设已移除banana)
3.5 isEmpty()判断HashSet是否为空
boolean isEmpty = set.isEmpty();  
System.out.println(isEmpty);  // 输出: false (假设集合中有元素)

 4 优缺点:

        优点:快速查找(平均时间复杂度为O(1))、高效插入和删除操作

        缺点:非线程安全、不保证顺序

5 注意事项

        HashSet不提供 get()方法来查找集合中指定的元素,但可以使用 contains()方法来判断集合中是否包含指定元素。 


http://www.kler.cn/news/334512.html

相关文章:

  • 【go入门】运算符
  • 【Java并发编程的艺术3】Java内存模型(上)
  • Redis: 集群高可用之MOVED转向和ASK转向解决方案
  • 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-01
  • LeetCode讲解篇之98. 验证二叉搜索树
  • PCIe6.0 AIC金手指和板端CEM连接器信号完整性设计规范
  • Nexus制品库搭建(maven)
  • 汇编语言笔记2
  • java数据类型转换和注释
  • esp8266 at指令链接wifi时一直connect disconnest
  • 信号用wire类型还是reg类型定义
  • 2024年,现在做全职的AI产品经理,时机对不对?
  • VMware ESXi更改https的TLS协议版本
  • 植物叶片病害检测数据集 5100张 29类 带标注 voc yolo
  • 利用 Python 爬虫采集 1688商品详情
  • 【D3.js in Action 3 精译_028】3.4 小节 DIY 实战:使用 Observable 在线绘制 D3 条形图
  • 问:TCP长连接vs短连接有哪些差异?
  • Unity MVC框架演示 1-1 理论分析
  • VSCode python代码颜色调整与pycharm对齐
  • 项目-坦克大战笔记-墙体销毁以及人机销毁