我想迭代HashMap列表并检索键和值(值1和值2)。这条线上有一个错误 “类型不匹配:无法从元素类型Object转换为Map.Entry>”
for (Map.Entry<String, List<String>> entry : Map.entrySet())
我做错了什么。请帮帮我。这是整个代码。
public static void main(String[] args) {
Map<String, List<String>> conceptMap = new HashMap<String, List<String>>();
Map<String, List<String>> PropertyMap = new HashMap<String, List<String>>();
try{
Scanner scanner = new Scanner(new FileReader("C:/"));
while (scanner.hasNextLine()){
String nextLine = scanner.nextLine();
String [] column = nextLine.split(":");
if (column[0].equals ("Property")){
if (column.length == 4) {
PropertyMap.put(column [1], Arrays.asList(column[2], column[3]));
}
else {
conceptMap.put (column [1], Arrays.asList (column[2], column[3]));
}
}
for (Map.Entry<String, List<String>> entry : Map.entrySet()) {
String key = entry.getKey();
List<String> valueList = entry.getValue();
System.out.println("Key: " + key);
System.out.print("Values: ");
for (String s : valueList) {
System.out.print(s + " ");
}
}
}
scanner.close();
}
catch (Exception e) {
e.printStackTrace();
}
答案 0 :(得分:2)
将Map.entrySet()
更改为PropertyMap.entrySet()
或conceptMap.entrySet()
答案 1 :(得分:1)
Map接口声明的Map.entrySet()
方法返回地图的集合视图(返回Set
)。这些set元素中的每一个都是Map.Entry
对象。 only 获取对映射条目的引用的方法来自此collection-view的迭代器。
如果您想要返回插入地图的Set
,则必须在您放入的收藏夹中调用它:
PropertyMap.entrySet()
和conceptMap.entrySet()
将返回集。
Map.entrySet()
未在您实例化的Maps
上调用该方法。
答案 2 :(得分:0)
Map.entrySet()返回map的集合视图。将其更改为conceptMap.entrySet()或 propertyMap.entrySet