JAVA中的Hashset类
HashSet擴展AbstractSet并且實現(xiàn)Set接口。它創(chuàng)建一個類集,該類集使用散列表進行存
儲。正像大多數(shù)讀者很可能知道的那樣,散列表通過使用稱之為散列法的機制來存儲信息。
在散列(hashing)中,一個關(guān)鍵字的信息內(nèi)容被用來確定唯一的一個值,稱為散列碼(hash
code)。而散列碼被用來當(dāng)做與關(guān)鍵字相連的數(shù)據(jù)的存儲下標(biāo)。關(guān)鍵字到其散列碼的轉(zhuǎn)換
是自動執(zhí)行的——你看不到散列碼本身。你的程序代碼也不能直接索引散列表。散列法的
優(yōu)點在于即使對于大的集合,它允許一些基本操作如add( ),contains( ),remove( )和size( )
方法的運行時間保持不變。
下面的構(gòu)造函數(shù)定義為:
HashSet( )
HashSet(Collection c)
HashSet(int capacity)
HashSet(int capacity, float fillRatio)
第一種形式構(gòu)造一個默認的散列集合。第二種形式用c中的元素初始化散列集合。第三
種形式用capacity初始化散列集合的容量。第四種形式用它的參數(shù)初始化散列集合的容量和
填充比(也稱為加載容量)。填充比必須介于0.0與1.0之間,它決定在散列集合向上調(diào)整大
小之前,有多少能被充滿。具體的說,就是當(dāng)元素的個數(shù)大于散列集合容量乘以它的填充
比時,散列集合被擴大。對于沒有獲得填充比的構(gòu)造函數(shù),默認使用0.75。
HashSet沒有定義任何超過它的超類和接口提供的其他方法。
重要的是,注意散列集合并沒有確保其元素的順序,因為散列法的處理通常不讓自己
參與創(chuàng)建排序集合。如果需要排序存儲,另一種類集——TreeSet將是一個更好的選擇。
這里是一個說明HashSet的例子。
// Demonstrate HashSet.
import java.util.*;
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, F, E, D, C, B]
如上面解釋的那樣,元素并沒有按順序進行存儲。
轉(zhuǎn)載于:https://blog.51cto.com/gomic/1375827
總結(jié)
以上是生活随笔為你收集整理的JAVA中的Hashset类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何搞定putty乱码
- 下一篇: CoCos2D-X-2.1.5在Ecli