當前位置:股票大全官網 - 財經新聞 - 哈希值是什麽?

哈希值是什麽?

哈希表類哈希表

哈希表是壹種重要的存儲方法和常用的檢索方法。其基本思想是將關系代碼的值作為自變量,通過壹定的函數關系計算出相應的函數值,將該值解釋為節點的存儲地址,並將節點存儲在計算出的存儲地址對應的存儲單元中。搜索時采用搜索鍵碼的方法。現在哈希表有壹套完整的插入、刪除和解決沖突的算法。在Java中,哈希表用於存儲對象並實現快速檢索。

Java.util.Hashtable為用戶提供了壹種使用哈希表的方式,而無需考慮其哈希表的實際工作方式。

哈希表類中有三種構造方法,即:

公共哈希表()

公共哈希表(int initialcapacity)

公共哈希表(int initialCapacity,float loadFactor)

參數initialCapacity是Hashtable的初始容量,其值應大於0。LoadFactor也稱為加載因子,是壹個介於0.0和1之間的浮點數。它是壹個百分比,指示哈希表何時需要擴展。例如,如果有壹個容量為100且加載因子為0.9的哈希表,那麽當哈希表容量的90%已被使用時,該哈希表將自動擴展為更大的哈希表。如果用戶沒有分配這些參數,系統將自動處理它們,無需用戶擔心。

Hashtable提供了插入和檢索等基本方法。

■插入

公共同步void put(對象鍵,對象值)

為對象值設置壹個關鍵字,並將其添加到哈希表中。如果該關鍵字已經存在,則將對應於該關鍵字的舊對象更新為新對象值。這說明同壹個關鍵字不可能對應哈希表中的不同對象(從哈希表的基本思想也可以明顯看出這壹點)。

■檢索

公共同步對象get(對象鍵)

根據給定的關鍵字key獲取相應的對象。

公共同步布爾包含鍵(對象鍵)

確定哈希表是否包含關鍵字key。

公共同步布爾包含(對象值)

確定值是否是哈希表中的元素。

■刪除

公共同步對象刪除(對象鍵)

從哈希表中刪除與關鍵字對應的對象。

公共同步void清除()

清除哈希表

此外,Hashtalbe還提供了獲取相應枚舉集的方法:

公共同步枚舉密鑰()

返回與關鍵字對應的枚舉對象。

公共同步枚舉元素()

返回與元素對應的枚舉對象。

示例1.5 Hashtable.java給出了壹個使用散列表的示例。

示例1.5 Hashtalbe.java。

//導入Java . lang . *;

導入Java . util . hashtable;

導入Java . util . enumeration;

公共類HashApp{

公共靜態void main(String args【】){

哈希表hash=new哈希表(2,(float)0.8);

//創建哈希表的對象哈希,初始容量為2,加載因子為0.8。

hash.put(“江蘇”、“南京”);

//給字符串對象“江蘇”壹個關鍵字“南京”,並將其添加到哈希中。

hash.put(“北京”、“北京”);

hash.put(“浙江”、“杭州”);

System.out.println(“哈希表hash h6 5438+0為:“+hash“);

System.out.println(“此哈希表的大小為“+hash . size()“);

//打印哈希的內容和大小。

enumeration enum 1 = hash . elements();

system . out . print(“hash的元素是:“);

while(enum 1 . hasmorelements())

system . out . print(enum 1 . next element()+““);

system . out . println();

//依次打印hash中的內容。

if(hash . contains key(“江蘇“))

System.out.println(“江蘇的能力是“+hash.get(“江蘇“));

hash . remove(“Beijing“);

//刪除關鍵字Beijing對應的對象。

System.out.println(“哈希表hash2為:“+hash“);

System.out.println(“此哈希表的大小為“+hash . size()“);

}

}

運行結果:

哈希表hash1為:{北京=北京,浙江=杭州,江蘇=南京}

這個哈希表的大小是3

哈希的元素是:北京杭州南京

江蘇的省會是南京

哈希表hash2為:{浙江=杭州,江蘇=南京}

這個哈希表的大小是2

Hashtable是Dictionary類的子類。在dictionary類中,關鍵字被映射到數據值。字典類是壹個抽象類。java.util中還有壹個類Properties,它是Hashtable的子類。它可用於執行與對象屬性相關的操作。