Java HashSet类
HashSet扩展AbstractSet和实现Set接口。它创建一个使用一个哈希表进行存储的集合。
哈希表通过使用一种称为哈希机制存储信息。在散列法中,键的信息内容是用来确定一个唯一的值,称为它的散列码。
散列码,用作在其中与该键相关联的数据被存储在索引中。键转化为它的哈希码是自动进行的。
HashSet类支持四个构造函数。第一种形式构造一个默认的哈希集合:
HashSet( )
下面的构造形式初始化哈希使用c的元素集。
HashSet(Collection c)
下面的构造形式初始化哈希设置为能力的能力。
容量自动成长作为元素被添加到哈希。
HashSet(int capacity)
第四种形式初始化哈希从它的参数设置的两个容量和填充比(也称为负载容量):
HashSet(int capacity, float fillRatio)
此处的填充比例必须在0.0〜1.0之间,它决定如何充分散列集可以是之前它被向上调整大小。具体而言,当元件的数目大于所述散列集乘以它的填充比率的容量,散列组已展开。
除了从它的父类继承的方法,HashSet的定义如下方法:
SN | 方法及描述 |
---|---|
1 |
boolean add(Object o) 将指定的元素添加到此集合,如果它是不存在的。 |
2 |
void clear() 删除所有从这个集合中的元素。 |
3 |
Object clone() 返回此HashSet实例的浅表副本:本身不被复制的元素。 |
4 |
boolean contains(Object o) 如果此set包含指定的元素,则返回true |
5 |
boolean isEmpty() 返回true如果此set不包含任何元素。 |
6 |
Iterator iterator() 返回一个迭代器在此set的元素。 |
7 |
boolean remove(Object o) 从集合中删除指定的元素(如果存在)。 |
8 |
int 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); } }
这将产生以下结果:
[D, E, F, A, B, C]