【Java系列】HashSet

news2025/1/15 7:32:51

在这里插入图片描述

HashSet

  • 介绍
    • 添加元素
    • 判断元素是否存在
    • 删除元素
    • 删除集合中所有元素可以使用 clear 方法:
    • 计算大小
    • 迭代 HashSet
  • 系列文章
  • 版本记录

在这里插入图片描述

介绍

HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。
HashSet 允许有 null 值。
HashSet 是无序的,即不会记录插入的顺序。
HashSet 不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的。 您必须在多线程访问时显式同步对 HashSet 的并发访问。
HashSet 实现了 Set 接口。
在这里插入图片描述

HashSet 中的元素实际上是对象,一些常见的基本类型可以使用它的包装类。

基本类型对应的包装类表如下:

基本类型引用类型
booleanBoolean
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
HashSet 类位于 java.util 包中,使用前需要引入它,语法格式如下:

import java.util.HashSet; // 引入 HashSet 类
以下实例我们创建一个 HashSet 对象 sites,用于保存字符串元素:

HashSet sites = new HashSet();

添加元素

HashSet 类提供了很多有用的方法,添加元素可以使用 add() 方法:

实例

// 引入 HashSet 类      
import java.util.HashSet;

public class RunoobTest {
    public static void main(String[] args) {
    HashSet<String> sites = new HashSet<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Zhihu");
        sites.add("Runoob");  // 重复的元素不会被添加
        System.out.println(sites);
    }
}

执行以上代码,输出结果如下:

[Google, Runoob, Zhihu, Taobao]
在上面的实例中,Runoob 被添加了两次,它在集合中也只会出现一次,因为集合中的每个元素都必须是唯一的。

判断元素是否存在

我们可以使用 contains() 方法来判断元素是否存在于集合当中:

实例

// 引入 HashSet 类      
import java.util.HashSet;

public class RunoobTest {
    public static void main(String[] args) {
    HashSet<String> sites = new HashSet<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Zhihu");
        sites.add("Runoob");  // 重复的元素不会被添加
        System.out.println(sites.contains("Taobao"));
    }
}

执行以上代码,输出结果如下:

true

删除元素

我们可以使用 remove() 方法来删除集合中的元素:

实例
// 引入 HashSet 类

import java.util.HashSet;

public class RunoobTest {
    public static void main(String[] args) {
    HashSet<String> sites = new HashSet<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Zhihu");
        sites.add("Runoob");     // 重复的元素不会被添加
        sites.remove("Taobao");  // 删除元素,删除成功返回 true,否则为 false
        System.out.println(sites);
    }
}

执行以上代码,输出结果如下:

[Google, Runoob, Zhihu]

删除集合中所有元素可以使用 clear 方法:

实例

// 引入 HashSet 类      
import java.util.HashSet;

public class RunoobTest {
    public static void main(String[] args) {
    HashSet<String> sites = new HashSet<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Zhihu");
        sites.add("Runoob");     // 重复的元素不会被添加
        sites.clear();  
        System.out.println(sites);
    }
}

执行以上代码,输出结果如下:

[]

计算大小

如果要计算 HashSet 中的元素数量可以使用 size() 方法:

实例

// 引入 HashSet 类      
import java.util.HashSet;

public class RunoobTest {
    public static void main(String[] args) {
    HashSet<String> sites = new HashSet<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Zhihu");
        sites.add("Runoob");     // 重复的元素不会被添加
        System.out.println(sites.size());  
    }
}

执行以上代码,输出结果如下:

4

迭代 HashSet

可以使用 for-each 来迭代 HashSet 中的元素。

实例

// 引入 HashSet 类      
import java.util.HashSet;

public class RunoobTest {
    public static void main(String[] args) {
    HashSet<String> sites = new HashSet<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Zhihu");
        sites.add("Runoob");     // 重复的元素不会被添加
        for (String i : sites) {
            System.out.println(i);
        }
    }
}

执行以上代码,输出结果如下:

Google
Runoob
Zhihu
Taobao

系列文章


内容地址 链接
JAVA系列Java介绍
JAVA系列Java 基础
JAVA系列ArrayList
JAVA系列LinkedList
=========================================================================
👊如果你对该系列文章有兴趣的话,欢迎持续关注博主动态,博主会持续输出优质内容👊

👊 博主很需要大家的支持,你的支持是我创作的不竭动力👊

👊 ~ 点赞收藏+关注 ~👊
=========================================================================

版本记录


  • 2023-10-27 第一版

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1149328.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PHP | php入门知识(if、switch、数组、数组排序、超级全局变量)

文章目录 一、php条件语句&#xff08;if、switch&#xff09;1. if语句2. if...else语句3. if...elseif...else语句4. switch语句 二、数组1&#xff09;数值数组1. 创建数值数组的两种方法&#xff1a;2. 获取数组的长度&#xff08;count()函数&#xff09;3. 遍历数值数组&…

港大联合百度开源通用图大模型GraphGPT:让大语言模型读懂图数据

导读 图神经网络&#xff08;GNN&#xff09;已成为处理和学习图数据的强大工具&#xff0c;在社交网络分析、推荐系统、智慧城市和生物信息等多个领域带来了革命性的进展。图神经网络的核心优势在于其揭示图数据中复杂关联性的能力。通过消息传递和信息聚合&#xff0c;图神经…

Leo赠书活动-04期 【国家数据局正式揭牌,数据专业融合型人才迎来发展良机 】文末送书5本

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; 赠书活动专栏 ✨特色专栏&#xff1a;…

数据防泄密软件排行榜(10大数据防泄密软件推荐)

众所周知&#xff0c;公司中往往由于员工离职而出现泄密的情况&#xff0c;比如公司的财务资料、客户资料以及数据资料等&#xff0c;员工在跳槽的时候将这些带走&#xff0c;管理者无从考证导致部门甚至企业出现亏损的情况。 数据泄密一旦发生&#xff0c;企业在查证追责时就有…

有了这本书学习递归算法不再那么难

递归是一种编程技术&#xff0c;能够产生相当优雅的代码&#xff0c;但它也经常会把写代码和看代码的程序员给弄糊涂。这并不是说程序员可以或者应该忽略递归。尽管大家都知道递归比较难&#xff0c;但是这是计算机科学领域的一个重要话题&#xff0c;它能让你敏锐地观察到编程…

【linux进程(七)】程序地址空间深度剖析

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:Linux从入门到精通⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学更多操作系统知识   &#x1f51d;&#x1f51d; 程序地址空间 1. 前言2. 什么…

中国卖家的出路:TikTok电商重塑东南亚市场

2023年10月4日&#xff0c;印尼政府发布了一则重要公告&#xff0c;宣布不再允许社交媒体作为商品销售平台。这一决策直接影响了TikTok在印尼的电商业务&#xff0c;迫使该平台关闭了其印尼市场的电商运营。 对于TikTok电商而言&#xff0c;印尼市场一直占据着重要地位&#x…

机器视觉工程师们,人的命运大多数连在一起

看着鱼池里的小鱼&#xff0c;很是治愈。自己的往后的生活还要继续。 有次出差&#xff0c;和工作经验13年机器视觉工程师&#xff0c;他用手指着流水线上的操作工说&#xff0c;他们失业&#xff0c;去干什么&#xff0c;回家种田吗&#xff1f;都机械化种田&#xff0c;回家…

程序员为啥要做副业(02)-中指备用金

点击下方“JavaEdge”&#xff0c;选择“设为星标” 第一时间关注技术干货&#xff01; 免责声明~ 任何文章不要过度深思&#xff01; 万事万物都经不起审视&#xff0c;因为世上没有同样的成长环境&#xff0c;也没有同样的认知水平&#xff0c;更「没有适用于所有人的解决方案…

table 部分列宽度固定,剩余列宽度等分

table 固定列固定宽度&#xff0c;剩余列给最小宽度 <thead><tr><th rowspan"2" style"width:100px">序号</th><th rowspan"2" style"width:120px">姓名</th><th v-for"date in dates&q…

如何实现可靠的数据调度同步,数据同步方案看一下!

随着企业规模不断扩大&#xff0c;分支机构越来越多&#xff0c;跨区域跨国的集团越来越多&#xff0c;越来越多的企业要求内部各种业务数据在服务器、数据中心甚至云上&#xff0c;能够进行实时的调度和同步&#xff0c;从而需要部署一套数据同步方案&#xff0c;实现服务器与…

DC电源模块如何承受超负荷电流的能力

BOSHIDA DC电源模块如何承受超负荷电流的能力 DC电源模块是现代电子设备中必不可少的部件&#xff0c;它们通常被用来将交流电转换为稳定的直流电&#xff0c;为电子设备提供所需的电力。在某些情况下&#xff0c;DC电源模块可能会遇到超负荷电流的情况&#xff0c;如启动过程…

CleanMyMacXMac4.14.4版本系统优化工具

CleanMyMac是macOS上不可或缺的清理工具&#xff0c;它的作用非常强大&#xff0c;可以帮助用户清理系统、照片、邮件、iTunes垃圾&#xff0c;甚至是隐私数据。以下是CleanMyMac的主要功能和特点&#xff1a; 首先&#xff0c;CleanMyMac可以帮助清理系统垃圾&#xff0c;包括…

Pyqt5 List Widget 用户自定义添加/删除字段

添加和删除字段的逻辑 在窗口上显示一个list widget的窗口&#xff0c;还有一个添加字段的按钮 点击添加字段会弹出一个输入框&#xff0c;将内容作为一个item添加到list widget中 点击对应的已添加的字段&#xff0c;即会显示删除按钮&#xff0c;点击即可删除该字段 效果…

登录Edge发生了错误请稍后再试。Oxcfff82e发送反馈ccf05c90-0acc-0005-3100-f2cccc0ada01

登录Edge 发生了错误请稍后再试。Oxcfff82e发送反馈ccf05c90-0acc-0005-3100-f2cccc0ada01 1、如果连接了 VPN &#xff0c;建议断开 VPN。 2、按 “Windows 徽标键X”&#xff0c;启动 “Windows Power Shell&#xff08;管理员&#xff09;”&#xff08;也可以自行以管理员…

【java学习—十】List集合(6)

文章目录 1. List 与 ArryList2. 应用2. ArrayList 与 Vector 1. List 与 ArryList List 代表一个元素有序、且可重复的集合&#xff0c;集合中的每个元素都有其对应的顺序索引     List 允许使用重复元素&#xff0c;可以通过索引来访问指定位置的集合元素。     List…

开源库存管理系统InvenTree的安装

本文是应网友 shijie880500 要求折腾的&#xff1b; 什么是 InvenTree &#xff1f; InvenTree 是一个开源的库存管理系统&#xff0c;提供强大的低级别库存控制和零件跟踪。InvenTree 系统的核心是 Python/Django 数据库后端&#xff0c;它提供了一个管理界面&#xff08;基于…

Mac 上免费的网络Folx Mac 下载器

Mac最好的下载工具Folx Pro 5 for Mac 是由兔八哥爱分享整理发布 。 Folx Pro 5 for Mac是目前Mac平台上数一数二的下载工具&#xff0c;功能强大&#xff0c;几乎可以满足您的所有下载需求。folx pro for mac完整版不但可以下载网上任何文件&#xff0c;而且支持断点续传&…

大数据之LibrA数据库系统告警处理(ALM-12001 审计日志转储失败)

告警解释 根据本地历史数据备份策略&#xff0c;集群的审计日志需要转储到第三方服务器上。如果转储服务器满足配置条件&#xff0c;审计日志可以成功转储。审计日志转储失败&#xff0c;系统产生此告警。如果第三方服务器的转储目录磁盘空间不足&#xff0c;或者用户修改了转…

【JavaSE】逻辑控制:顺序、分支和循环结构

目录 一、概述与顺序结构 1.逻辑控制的概述 2.顺序结构 二、分支结构 1.if语句 2.switch语句 3.switch语句与if语句的对比 三、循环结构 1.while语句 2.for语句 3.do…while循环&#xff08;选学&#xff09; 四、循环的跳转 1.break语句 2.continue语句 五、总…