我一直在閱讀/研究爲什麼HashMap
快於HashSet
。爲什麼HashMap比HashSet快?
我不是很理解下面的語句:
HashMap
比HashSet
更快,因爲值相關聯的唯一關鍵詞。在
HashSet
中,成員對象用於計算哈希碼值,對於兩個對象可以是相同的,所以equals()
方法用於檢查是否相等。如果返回false
,則表示這兩個對象是不同的。在HashMap
中,使用密鑰對象計算哈希碼值。使用密鑰對象計算
HashMap
哈希碼值。在這裏,成員對象用於計算哈希碼,對於兩個對象可以是相同的,因此使用equals()
方法檢查相等性。如果返回false
,則表示這兩個對象是不同的。
在結束我的問題:
我想
HashMap
和HashSet
計算以同樣的方式的哈希碼。他們爲什麼不同?你能否提供一個具體的例子
HashSet
和HashMap
以不同的方式計算哈希碼?我知道什麼是「關鍵對象」,但是「成員對象」是什麼意思?
HashMap
可以做和HashSet
一樣的事情,而且速度更快。爲什麼我們需要HashSet
?例如:HashMap <Object1, Boolean>= new HashMap<Object1, boolean>(); map.put("obj1",true); => exist map.get("obj1"); =>if null = not exist, else exist
您應該瞭解一下'Map'和'Set'之間的區別。它們是兩種不同類型的「藏品」。完成之後,應該清楚爲什麼從地圖獲取特定對象比從集合中獲得更快。 – Magnilex 2013-04-29 12:49:24
Hashset建立在HashMap上。 Set用於唯一性。它不是關鍵值對收集。 – 2013-04-29 12:50:27
是的。我知道他們實現了不同的界面。但有些人說hashset在後端使用hashmap。如果這就是事實,爲什麼hashset會比hashmap慢? – runcode 2013-04-29 12:50:43