在計算機科學中,hashmap或hash table是一種結構化數據的形式,使得每一條數據都鏈接到一個唯一的標識號或符號上。這使得檢索變得容易,尤其是從包含數千個條目的大型數據庫中。hashmap不是程序的特定部分,而是指一種數據組...
在計算機科學中,hashmap或hash table是一種結構化數據的形式,使得每一條數據都鏈接到一個唯一的標識號或符號上。這使得檢索變得容易,尤其是從包含數千個條目的大型數據庫中。hashmap不是程序的特定部分,而是指一種數據組織形式,分配每個項,稱為鍵,哈希函數是程序的一部分,它將鍵鏈接到它們的值。

人工控制計算機電話簿是hashmap的一個很好的例子,電話簿的布局方式代表了hashmap的結構,它側重于將不同的值連接在一起,并且只將一個值與另一個對應的項相關聯,或電話號碼。電話簿中的姓名是鑰匙,電話號碼是與之相關的值。電話簿中的每個人都被分配了一個不同的號碼,沒有兩個號碼是相同的office box也可以作為hashmap的隱喻。每個人都有一個盒子的鑰匙。盒子里可以存放多個信息——賬單、信件、明信片——所有這些都是為擁有盒子鑰匙的人準備的。當正確的鑰匙插入或匹配到正確的盒子中時,它就會打開,露出里面的東西功能完善的hashmaps可以將一個鍵鏈接到計算機數據庫中的一個內存"框"不幸的是,可能會出現一個被稱為哈希沖突的因素,即兩個鍵進入同一個盒子。當輸入大量數據,而沒有足夠的"盒子"來容納所有數據時,就會發生這種情況。與電話簿或郵局信箱不同,hashmaps除了鍵和它匹配的值或框外,還包括第三個元素。它還包含一個哈希函數。一個人知道哪個郵局的郵箱是她的,但必須告訴計算機哪個郵箱的鑰匙是哪個。哈希函數查看密鑰,將其轉換成一系列數字或代碼,并將其鏈接到包含相應代碼的框中,鍵的名稱,如"Mary"只在那里以便人們更容易理解,而實際的代碼是一系列數字,供計算機讀取。