for (Map.Entry<String, Map<String, List>> entry:Map1.entrySet())
{
String key=entry.getKey();
System.out.println("Type : " +key);
for (Map.Entry<String, List> entry1 : entry.getKey().getValue().entrySet())
{
System.out.println("Type : " + entry1.getKey());
}
}
我不知道应该用什么代替entry.getKey().getValue().entrySet()
。任何人都可以解释我理解这一点。这是为了迭代嵌套映射。
我得到的错误是
.\common\devtracker\process\devtr\DevTrackerImpl.java:226: cannot find symbol
symbol : method getValue()
location: class java.lang.String
for (Map.Entry<String, List<ProjectBreakupVO>> entry1:entry.getKey().getValue().entrySet())
答案 0 :(得分:2)
entry.getKey()没有方法getValue(),因为它只返回一个字符串。你可能想要的是什么
for (Map.Entry<String, List> entry1 : entry.getKey().getValue().entrySet())
而是做
for (Map.Entry<String, List> entry1 : entry.getValue().entrySet())
答案 1 :(得分:0)
你应该使用....
for (Map.Entry<String, List> entry1 : entry.getKey().getValue().entrySet())
获取内循环的条目。
答案 2 :(得分:0)
如果您尝试迭代Map<String, List>
类型的地图,并且在使用myMap.keySet()
时遇到 findbugs 问题:
for (String keyValue : myMap.keySet()) {
String key = keyValue;
List objValue = myMap.get(key);
}
然后尝试使用myMap.entrySet()
迭代地图,这是更值得推荐的:
for(Map.Entry<String, List> entry: myMap.entrySet()) {
String key = entry.getKey();
List objValue = entry.getValue();
}
因此在这种情况下嵌套forloop就像:
for (Map.Entry<String, Map<String, List>> entry:Map1.entrySet())
{
String key=entry.getKey();
System.out.println("Type : " +key);
for (Map.Entry<String, List> entry1 : entry.getValue().entrySet())
{
System.out.println("Type : " + entry1.getKey());
}
}