我假设你的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);
// ...
}
在声明 vars(以及在泛型参数中)时,应使用接口名称,除非您有非常具体的原因来使用该实现进行定义。