Java中的HashSet

HashSet扩展AbstractSet并实现Set接口。它创建一个使用哈希表进行存储的集合。

哈希表通过使用称为哈希的机制来存储信息。在散列中,键的信息内容用于确定唯一值,称为其散列码。

然后,将哈希码用作存储与键关联的数据的索引。键到其哈希码的转换是自动执行的。

以下是HashSet类提供的构造函数的列表。

序号构造函数与说明
1HashSet()
该构造函数构造一个默认的HashSet。
2HashSet(Collection c)
此构造函数通过使用collection c的元素初始化哈希集。
3HashSet(int Capacity)
此构造函数将哈希集的容量初始化为给定的整数值容量。
随着将元素添加到HashSet中,容量会自动增长。
4HashSet(int Capacity,float fillRatio)
此构造函数根据其参数初始化哈希集的容量和填充率(也称为负载容量)。
此处的填充率必须在0.0到1.0之间,并且它确定哈希集在向上调整大小之前可以有多满。具体来说,当元素的数量大于哈希集的容量乘以其填充率时,哈希集将被扩展。

除了从其父类继承的方法之外,HashSet定义以下方法-

序号方法与说明
1boolean add(Object o)
如果指定的元素尚不存在,则将其添加到此集合中。
2void clear()
从此集合中删除所有元素。
3Object clone()
返回此HashSet实例的浅表副本:元素本身未克隆。
4boolean contains(Object o)
如果此集合包含指定的元素,则返回true。
5boolean isEmpty()
如果此集合不包含任何元素,则返回true。
6Iterator iterator()
返回对此集合中的元素进行迭代的迭代器。
7boolean remove(Object o)
从该集合中移除指定的元素(如果存在)。
8int size()
返回此集合中的元素数(其基数)。

示例

以下程序说明了HashSet支持的几种方法-

import java.util.*;
public class HashSetDemo {
   public static void main(String args[]) {

      // create a hash set
      HashSet hs = new HashSet();

      // add elements to the hash set
      hs.add("B");
      hs.add("A");
      hs.add("D");
      hs.add("E");
      hs.add("C");
      hs.add("F");
      System.out.println(hs);
   }
}

这将产生以下结果-

输出结果

[A, B, C, D, E, F]