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

70-Java HashSet 类

福利时间如果你正在备战面试或者想要学习其他知识给大家推荐一个宝藏知识库作者整理了一些列 Java 程序员需要掌握的核心知识有需要的自取不谢。知识库地址https://farerboy.com/Java HashSet 类在本教程中我们将学习Java HashSet类。我们将借助示例学习不同的哈希集方法和操作。Java Collections框架的HashSet类提供了哈希表数据结构的功能。它实现 Set 接口。创建一个哈希集为了创建哈希集我们必须先导入java.util.HashSet包。导入包后就可以在Java中创建哈希集。//具有8个容量和0.75负载因子的HashSet HashSetInteger numbers new HashSet(8, 0.75);在这里我们创建了一个名为的哈希集numbers。注意新的部分HashSet(8, 0.75)。这里第一参数是容量并且第二参数是负载因子。capacity-该哈希集的容量为8。意味着它可以存储8个元素。loadFactor- 此哈希集的负载因子为0.6。这意味着只要我们的哈希集填充了60元素就会移到新哈希表中该哈希表的大小是原始哈希表的两倍。默认容量和负载因子创建散列表而不定义其容量和负载因子是可能的。例如//具有默认容量和负载因子的HashSet HashSetInteger numbers1 new HashSet();默认哈希集的容量将为 16负载因子将为 0.75HashSet的方法HashSet类提供了各种方法这些方法使我们可以对集合执行各种操作。将元素插入HashSetadd() - 将指定的元素插入集合addAll() - 将指定集合的所有元素插入集合例如import java.util.HashSet; class Main { public static void main(String[] args) { HashSetInteger evenNumber new HashSet(); // 使用 add() 方法 evenNumber.add(2); evenNumber.add(4); evenNumber.add(6); System.out.println(HashSet: evenNumber); HashSetInteger numbers new HashSet(); // 使用 addAll() 方法 numbers.addAll(evenNumber); numbers.add(5); System.out.println(New HashSet: numbers); } }输出结果HashSet: [2, 4, 6] New HashSet: [2, 4, 5, 6]访问HashSet元素要访问哈希集合的元素我们可以使用iterator()方法。为了使用此方法我们必须导入java.util.Iterator包。例如import java.util.HashSet; import java.util.Iterator; class Main { public static void main(String[] args) { HashSetInteger numbers new HashSet(); numbers.add(2); numbers.add(5); numbers.add(6); System.out.println(HashSet: numbers); // 调用iterator()方法 IteratorInteger iterate numbers.iterator(); System.out.print(使用Iterator的HashSet: ); //访问元素 while(iterate.hasNext()) { System.out.print(iterate.next()); System.out.print(, ); } } }输出结果HashSet: [2, 5, 6] 使用Iterator的HashSet: 2, 5, 6,删除元素remove() - 从集合中删除指定的元素removeAll() - 从集合中删除所有元素例如import java.util.HashSet; class Main { public static void main(String[] args) { HashSetInteger numbers new HashSet(); numbers.add(2); numbers.add(5); numbers.add(6); System.out.println(HashSet: numbers); //使用remove()方法 boolean value1 numbers.remove(5); System.out.println(值5被删除? value1); boolean value2 numbers.removeAll(numbers); System.out.println(所有的元素都被移除了吗? value2); } }输出结果HashSet: [2, 5, 6] 值5被删除? true 所有的元素都被移除了吗? trueSet操作方法HashSet类的各种方法也可以用于执行各种set操作。Set集合并集执行两个集合之间的并集我们可以使用addAll()方法。例如import java.util.HashSet; class Main { public static void main(String[] args) { HashSetInteger evenNumbers new HashSet(); evenNumbers.add(2); evenNumbers.add(4); System.out.println(HashSet1: evenNumbers); HashSetInteger numbers new HashSet(); numbers.add(1); numbers.add(3); System.out.println(HashSet2: numbers); //集合并集 numbers.addAll(evenNumbers); System.out.println(Union is: numbers); } }输出结果HashSet1: [2, 4] HashSet2: [1, 3] Union is: [1, 2, 3, 4]Set集合的交集要执行两个集合之间的交集我们可以使用retainAll()方法。例如import java.util.HashSet; class Main { public static void main(String[] args) { HashSetInteger primeNumbers new HashSet(); primeNumbers.add(2); primeNumbers.add(3); System.out.println(HashSet1: primeNumbers); HashSetInteger evenNumbers new HashSet(); evenNumbers.add(2); evenNumbers.add(4); System.out.println(HashSet2: evenNumbers); //集合的交集 evenNumbers.retainAll(primeNumbers); System.out.println(交集: evenNumbers); } }输出结果HashSet1: [2, 3] HashSet2: [2, 4] 交集: [2]Set集合的差集要计算两组之间的差集我们可以使用removeAll()方法。例如import java.util.HashSet; class Main { public static void main(String[] args) { HashSetInteger primeNumbers new HashSet(); primeNumbers.add(2); primeNumbers.add(3); primeNumbers.add(5); System.out.println(HashSet1: primeNumbers); HashSetInteger oddNumbers new HashSet(); oddNumbers.add(1); oddNumbers.add(3); oddNumbers.add(5); System.out.println(HashSet2: oddNumbers); //HashSet1和HashSet2之间的差集 primeNumbers.removeAll(oddNumbers); System.out.println(Difference : primeNumbers); } }输出结果HashSet1: [2, 3, 5] HashSet2: [1, 3, 5] 差集: [2]Set集合的子集要检查一个集合是否是另一个集合的子集我们可以使用containsAll()方法。例如import java.util.HashSet; class Main { public static void main(String[] args) { HashSetInteger numbers new HashSet(); numbers.add(1); numbers.add(2); numbers.add(3); numbers.add(4); System.out.println(HashSet1: numbers); HashSetInteger primeNumbers new HashSet(); primeNumbers.add(2); primeNumbers.add(3); System.out.println(HashSet2: primeNumbers); //检查primeNumbers是否是numbers的子集 boolean result numbers.containsAll(primeNumbers); System.out.println(HashSet2是HashSet1的子集吗? result); } }输出结果HashSet1: [1, 2, 3, 4] HashSet2: [2, 3] HashSet2是HashSet1的子集吗? trueHashSet的其他方法方法描述clone()创建HashSet副本contains()在中搜索HashSet指定的元素并返回布尔结果isEmpty()检查是否HashSet为空size()返回HashSet的大小clear()从HashSet中删除所有元素为什么选择HashSet在Java中如果我们必须随机访问元素则通常使用HashSet。 这是因为哈希表中的元素是使用哈希码访问的。元素的hashcode是唯一标识它有助于标识散列表中的元素。HashSet不能包含重复的元素。因此每个散列集元素都有一个惟一的hashcode。注意HashSet不同步。也就是说如果多个线程同时访问哈希集合并且其中一个线程修改了哈希集合。然后它必须在外部同步。
http://www.rkmt.cn/news/1400309.html

相关文章:

  • 2026济南商用空调维修推荐,腾扬制冷靠谱保障一站式服务性价比高 - myqiye
  • Ubuntu 22.04 LTS下屏幕分辨率显示‘Unknown display’?用xrandr和xorg.conf两步搞定
  • 碧蓝航线全自动脚本:3分钟快速部署,彻底解放你的游戏时间
  • 那个天天准点下班的同事,原来偷偷在用 FastDDD
  • Page Assist终极指南:在浏览器中安全使用本地AI的完整教程
  • 混合视觉Transformer硬件加速:挑战与优化方案
  • 告别龟速下载!在Ubuntu 22.04上5分钟搞定qBittorrent安装与Web UI远程管理
  • 基于Quarkus与MCP协议构建Java多智能体LLM Web前端实践
  • MTKClient:当你的联发科设备“变砖“时,这才是正确的拯救方式
  • 在Ubuntu 20.04上从源码编译Bochs 2.6.9,手把手带你跑通GeekOS 0.3.0
  • Seraphine:基于LCU API的英雄联盟数据集成平台完整指南
  • 在CentOS 7上折腾FFmpeg的gl-transitions转场?这份避坑指南能省你半天
  • AI时代软件工程变革:从工具应用到组织能力构建
  • AI应用MVP快速搭建指南:Next.js全栈+认证支付部署实战
  • 2026年5月国际十大物流公司排行榜推荐:十家专业评测夜班货物急运防延误 - 品牌推荐
  • 工业物联网网关DIY:基于STM32F407和FreeModbus TCP,如何将现场设备数据轻松上云?
  • 阴阳师自动化脚本终极指南:告别手动刷本,让游戏回归乐趣
  • CVPR 2026 预讲会|安徽大学-多模态认知计算实验室专场
  • 嵌入式linux的根目录解析
  • 2026网安全技术栈+实战学习全指南
  • 3DsMax展UV时,红、蓝、绿边到底什么意思?5分钟搞懂颜色密码,贴图不穿帮
  • 低胜率高盈亏比交易系统:如何用38.8%胜率实现21.83%收益
  • 在openEuler 22.03上,我如何用一条命令搞定Oracle 19C(19.22)数据库和PSU补丁
  • 镜像视界:让真实世界可计算,政企全域透明化管控的终极解决方案
  • 2026年公牛充电桩深度解析:家庭充电场景安装难与售后响应慢 - 品牌推荐
  • Canopy框架:标准化AI技能契约,解决LLM应用模糊指令难题
  • 别再乱删快照了!VMware Workstation Pro里给Ubuntu虚拟机扩容的正确姿势(附完整流程)
  • EhViewer开源漫画浏览器:5个技巧打造你的专属漫画阅读体验
  • Kali 2024.1 新装后,USB网卡(RT5370芯片)驱动安装保姆级避坑指南
  • Numeca在Linux下的两种安装路径选择:/usr/ 还是 /home/?权限管理与后续使用对比