Java HashSet 类



简介

Java HashSet 类实现了 Set 接口,底层使用哈希表。以下是关于 HashSet 的重要要点:

  • 此类不保证集合的迭代顺序;特别是,它不保证顺序随时间保持不变。

  • 此类允许 null 元素。

类声明

以下是 java.util.HashSet 类的声明:

public class HashSet<E>
   extends AbstractSet<E>
   implements Set<E>, Cloneable, Serializable

参数

以下是 java.util.HashSet 类的参数:

E - 这是此集合维护的元素类型。

类构造函数

序号 构造函数及描述
1

HashSet()

这将构造一个新的空集合;底层 HashMap 实例具有默认的初始容量 (16) 和加载因子 (0.75)。

2

HashSet(Collection<? extends E> c)

这将构造一个新的集合,其中包含指定集合中的元素。

3

HashSet(int initialCapacity)

这将构造一个新的空集合;底层 HashMap 实例具有指定的初始容量和默认加载因子 (0.75)。

4

HashSet(int initialCapacity, float loadFactor)

这将构造一个新的空集合;底层 HashMap 实例具有指定的初始容量和指定的加载因子。

类方法

序号 方法及描述
1 boolean add(E e)

如果指定的元素不存在,此方法会将其添加到此集合中。

2 void clear()

此方法会移除此集合中的所有元素。

3 Object clone()

此方法会返回此 HashSet 实例的浅拷贝,元素本身不会被克隆。

4 boolean contains(Object o)

如果此集合包含指定的元素,则此方法返回 true。

5 boolean isEmpty()

如果此集合不包含任何元素,则此方法返回 true。

6 Iterator<E> iterator()

此方法会返回此集合中元素的迭代器。

7 boolean remove(Object o)

如果指定的元素存在,此方法会将其从此集合中移除。

8 int size()

此方法返回此集合中元素的数量(其基数)。

9 Spliterator<E> spliterator()

此方法会返回此集合中元素的延迟绑定且快速失败的 Spliterator。

继承的方法

此类继承自以下类的方法:

  • java.util.AbstractSet
  • java.util.AbstractCollection
  • java.util.Object
  • java.util.Set

向 HashSet 添加元素的示例

以下示例演示了如何使用 Java HashSet 的 add() 方法向 HashSet 添加条目。我们创建了一个 Integer 类型的 HashSet 对象。然后使用 add() 方法添加了一些条目,最后打印了集合。

package com.tutorialspoint;

import java.util.HashSet;

public class HashSetDemo {
   public static void main(String args[]) {
      
      // create hash set
      HashSet <Integer> newset = new HashSet <>();

      // populate hash set
      newset.add(1); 
      newset.add(2);
      newset.add(3);  

      // checking elements in hash set
      System.out.println("Hash set values: "+ newset);
   }    
}

输出

让我们编译并运行上述程序,这将产生以下结果。

Hash set values: [1, 2, 3]
广告