2016-06-13 91 views
0

我必須製作一個應用程序,它將使用哈希映射(s)模擬java中的電話簿。我想要實現2種搜索方法(輸入名稱以獲取數字並輸入數字以獲取名稱)。在java中使用hashmap實現的電話簿

有沒有什麼辦法可以使這兩種方法只有1個哈希映射定義像這樣HashMap<Person, Number> pb = new HashMap<>();(其中Person和Number是類)?

+0

這應該是相當可能的。 –

+1

你可以,但你需要遍歷每個值來找到一個數字。只是一個觀察:數字保證是唯一的。名字不是。數字成爲關鍵點更有意義。 –

回答

2

不,你需要在這種情況下和Map<Number, Person>,如果你想有一個快速訪問您的數據只有一個地圖,你會需要遍歷這當然是很慢的值。

你也可以使用一個BiMap從谷歌番石榴有一個地圖

一個bimap的(或「雙向映射」)做雙方是地圖,可以保留 獨特的價值觀,以及爲中它的鑰匙。這種約束 使bimaps以支持一個「逆視圖」,其是包含相同的條目,因爲這bimap的但具有反向的鍵和 值