HashSet 的基本使用

发布时间 2023-05-17 16:56:49作者: JAVA_织梦者_TW

 HashSet 是 Java 中的集合类之一,它实现了 Set 接口,并基于哈希表实现。它不允许集合中存在重复元素,因此可以用来存储一组唯一的对象。

在 HashSet 中,每个元素都对应着一个唯一的键值,这个键值是通过元素的 hashCode() 方法计算出来的。具体来说,HashSet 通过将元素的 hashCode() 方法返回值作为索引来存储元素,因此可以快速地查找和访问元素。

当我们向 HashSet 中添加元素时,它会先计算元素的 hashCode() 值,然后将元素存储到相应的索引位置上。如果在该位置上已经存在一个元素,则会比较新元素与已有元素的 equals() 方法返回值是否相等,如果相等则认为新元素已经存在于集合中,不会被重复添加;否则会将新元素添加到集合中。

HashSet 的优点是可以快速地查找和访问元素,时间复杂度为 O(1);缺点是 HashSet 是无序的,不能保证元素的顺序。此外,由于 HashSet 是基于哈希表实现的,因此它的性能与哈希函数的质量密切相关,如果哈希函数的质量不高,可能会导致元素的分布不均匀,进而影响 HashSet 的性能。

 

HashSet的基本使用如下:

 

import java.util.HashSet;

public class HashSetExample {
    public static void main(String[] args) {
        // 创建一个HashSet对象
        HashSet<String> set = new HashSet<>();

        // 添加元素
        set.add("apple");
        set.add("banana");
        set.add("orange");

        // 判断元素是否存在
        System.out.println(set.contains("apple")); // true
        System.out.println(set.contains("pear")); // false

        // 删除元素
        set.remove("banana");

        // 遍历元素
        for (String fruit : set) {
            System.out.println(fruit);
        }

        // 获取元素个数
        System.out.println(set.size()); // 2
    }
}

 

在上面的代码中,我们首先创建了一个HashSet对象set,并向其中添加了三个元素。然后,我们使用contains方法判断元素是否存在,使用remove方法删除元素,使用for-each循环遍历元素,使用size方法获取元素个数。最终,输出结果为:

true
false
apple
orange
2

 

可以看到,HashSet可以很方便地实现元素的添加、删除、判断、遍历等操作。