0
点赞
收藏
分享

微信扫一扫

Java集合—HashSet

乐百川 2023-11-15 阅读 39

HashSet简介

HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。

HashSet 允许有 null 值。

HashSet 是无序的、不重复的,即不会记录插入的顺序。

HashSet 不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的。 您必须在多线程访问时显式同步对 HashSet 的并发访问。

HashSet 实现了 Set 接口。

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

基本类型

引用类型

boolean

Boolean

byte

Byte

short

Short

int

Integer

添加元素

// 引入 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);
        
        System.out.println(sites.contains("Taobao"));
    }
}

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

[Google, Runoob, Zhihu, Taobao]

删除元素

我们可以使用 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

可以使用 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

举报

相关推荐

0 条评论