一文带你掌握Java中的HashSet

 更新时间:2023年05月09日 14:20:18   作者:无声编码器  
HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合,HashSet 不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的,本文将带你详细了解Java中的HashSet,,需要的朋友可以参考下

HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。HashSet 实现了 Set 接口。HashSet 允许有 null 值。HashSet 是无序的,即不会记录插入的顺序。HashSet 不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的。 您必须在多线程访问时显式同步对 HashSet 的并发访问。HashSet 中的元素实际上是对象,一些常见的基本类型可以使用它的包装类。

HashSet 类位于 java.util 包中,使用前需要引入它,语法格式如下:

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

以下实例我们创建一个 HashSet 对象 sites,用于保存字符串元素:

HashSet<String> sites = new HashSet<String>();

添加元素:添加元素可以使用 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中的HashSet的详细内容,更多关于Java HashSet的资料请关注脚本之家其它相关文章!

相关文章

  • Feign 集成 Hystrix实现不同的调用接口不同的设置方式

    Feign 集成 Hystrix实现不同的调用接口不同的设置方式

    这篇文章主要介绍了Feign 集成 Hystrix实现不同的调用接口不同的设置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • JavaWeb中异步交互的关键Ajax详解

    JavaWeb中异步交互的关键Ajax详解

    这篇文章主要给大家介绍了关于JavaWeb中异步交互关键Ajax的相关资料,在javaweb中,ajax是前后台交互的技术,可以实现异步请求,不用刷新整个页面就可以完成操作,需要的朋友可以参考下
    2023-07-07
  • Java生成非对称型加密公钥和私钥的方法

    Java生成非对称型加密公钥和私钥的方法

    这篇文章主要介绍了Java生成非对称型加密公钥和私钥的方法,涉及java非对称加密的原理与实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • 解析springcloud中的Hystrix

    解析springcloud中的Hystrix

    Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等。这篇文章主要介绍了springcloud中的Hystrix,需要的朋友可以参考下
    2020-10-10
  • Flowable执行完毕的流程查找方法

    Flowable执行完毕的流程查找方法

    这篇文章主要为大家介绍了Flowable执行完毕的流程查找方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • Java读取Excel文件内容的简单实例

    Java读取Excel文件内容的简单实例

    这篇文章主要介绍了Java读取Excel文件内容的简单实例,有需要的朋友可以参考一下
    2013-11-11
  • JAVA代码书写规范汇总详解

    JAVA代码书写规范汇总详解

    这篇文章主要介绍了JAVA代码书写规范汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Struts2通过自定义标签实现权限控制的方法

    Struts2通过自定义标签实现权限控制的方法

    这篇文章主要介绍了Struts2通过自定义标签实现权限控制的方法,介绍了定义Struts2的自定义标签的三个步骤以及详细解释,需要的朋友可以参考下。
    2017-09-09
  • iReport简单使用方法图文教程

    iReport简单使用方法图文教程

    iReport是一个能够创建复杂报表的开源项目,它100%使用Java语言编写,是目前全球最为流行的开源报表设计器,由于它丰富的图形界面,你能够很快的创建出任何一种你想要的报表
    2021-10-10
  • Java中File类方法详解以及实践

    Java中File类方法详解以及实践

    Java File类的功能非常强大,利用java基本上可以对文件进行所有操作,下面这篇文章主要给大家介绍了关于Java中File类方法以及实践的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-04-04

最新评论