我想使用HashMap
來爲每個鍵存儲多個值。HashMap只存儲每個鍵的最後一個值
我想我已經弄清楚我的代碼有什麼問題,但我不知道如何解決它。據我所知,每次該方法得到新的參數,HashMap覆蓋自己,而不是添加一個新的值。
我怎樣才能阻止它覆蓋自己,而是添加一個新的標題。
HashMap<String, List<String>> owner = new HashMap<String, List<String>>();
public void Owner (String name, String title) throws Exception{
List<String> listTitle = new ArrayList<String>();
if(!listTitle.contains(title)){
listeTitle.add(title);
}
else if(listeTitle.contains(title)){
System.out.println("This person allready owns this title.");
}
eier.put(name, listTitle);
}
用來打印HashMap中的方法:我怎麼想的控制檯看起來像運行後
public void PrintOwner(){
for (HashMap.Entry<String, List<String>> entry : owner.entrySet()) {
String key = entry.getKey();
List<String> values = entry.getValue();
System.out.println(key + " owns:" + values;
}
}
例子:
喬恩擁有:
[魔戒]
[哈利波特]
戴夫擁有:
[火星]
[冰凍]
但是目前我們只能說明:
喬恩擁有:
[哈利波特]
戴夫擁有:
[冰凍]
您每次創建一個帶有列表的新列表 listTitle = new ArrayList ();'。您需要改爲現有的。 –
Tunaki
使用owner.get(key); – 2015-11-02 15:09:17