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]