我假設你在你的get語句中有一個輸入錯誤,它應該是test1.get(key)。如果是這樣,我不知道它爲什麼不返回一個ArrayList,除非你沒有在地圖中放入正確的類型。
這應該工作:
// populate the map
Map<String, List<String>> test1 = new LinkedHashMap<String, List<String>>();
test1.put("key1", new ArrayList<String>());
test1.put("key2", new ArrayList<String>());
// loop over the set using an entry set
for(Map.Entry<String,List<String>> entry : test1.entrySet()){
String key = entry.getKey();
List<String>value = entry.getValue();
// ...
}
,或者您可以使用
// second alternative - loop over the keys and get the value per key
for(String key : test1.keySet()){
List<String>value = test1.get(key);
// ...
}
宣告你的增值經銷商時,應使用接口名稱(並在通用PARAMS),除非你有一個非常特殊的理由爲什麼你要使用實現來定義。
順便說一句,我想有一個與插入順序列表,我用的HashMap之前,但它搞砸的順序。 –
我不是說不要使用'LinkedHashMap',但通常的最佳做法是聲明'Map> map = new LinkedHashMap >'。 –
@Pbasak您只能使用接口類型進行聲明。當你實例化地圖對象時,你仍然會使用你的'LinkedHashMap',它將確保插入順序保持不變。這樣你就可以堅持你的實現選擇,但仍然使用更通用的類型到外部。 –