2015-12-12 57 views
-4

在HashMap中,當我們輸入一個對象時,它會計算key的hashCode,然後轉到它指向的存儲桶。如果存儲桶已經包含同一個鍵​​的另一個對象,但值不相同。它是否應該重載equal()方法以及如何?請幫忙在HashMap中插入對象

+0

你的問題是什麼?重寫這些庫,做另一個?您還可以讀取源... –

+1

如果地圖alreay包含該鍵的值,則新值將替換與該鍵關聯的舊值。這是記錄:https://docs.oracle.com/javase/8/docs/api/java/util/Map.html#put-KV- –

+0

你可以解釋我們如何重寫hashCode()和equals()在HashMap類? – user5533204

回答

0

這是價值對問題。

只要你把關鍵/對一個Hashmap,如果關鍵是一樣的,舊的條目將被用新的覆蓋。

這些值永遠不會相互比較,你把你想要的東西放在Hashmap中,Hashmap不會在覆蓋條目時發出警告。

公共五世說(K鍵, PV值)

將指定值與此映射中指定的鍵。如果 映射先前包含該鍵的映射,則替換舊值。

+0

我被賦予了爲僱員類創建對象集合的任務(ename,年齡,部門),我必須根據他們的名字安排僱員對象,如果他們有相同的名字,那麼按照年齡和年齡排序按部門訂購。所以我如何接近? – user5533204

+0

使用該密鑰的唯一標識符,該名稱不是您的案例中的有效標識符。 – Berger

+0

@ user5533204它看起來像你被要求排序emplyees列表,而不是使用HashMap。 Google用於「在Java中排序對象列表」。 –