Java使用Map.Entry而不是编译的Map

时间:2013-07-23 09:34:02

标签: java map

我收到一个错误,我似乎无法修复自己,这可能是一个愚蠢的错误,但我无法看到它。

Map<TemplateBean, Map<String, String>> templateMap = new HashMap<>();
//some code that fills up the map
int biggestSize = 0;
Map<String, String> biggestValues = null;
for (Map.Entry<TemplateBean, Map<String, String>> entry : templateMap.values()) {
    Map<String, String> currentValues = entry.getValue();
    int currentSize = currentValues.size();
    if (currentSize > biggestSize) {
        biggestSize = currentSize;
        biggestValues = currentValues;
    }
}
if (biggestValues != null) {
    values = biggestValues;
}

它在for循环中给出了这个错误:

incompatible types
  required: Entry<TemplateBean,Map<String,String>>
  found:    Map<String,String>

但是我很确定我说得对,我不是很想迭代地图或任何东西,但它仍然是星期二早上。

问候。

1 个答案:

答案 0 :(得分:3)

更改此行 -

for (Map.Entry<TemplateBean, Map<String, String>> entry: 
            templateMap.values())

到 -

for (Map.Entry<TemplateBean, Map<String, String>> entry: 
            templateMap.entrySet())

查看JavaDoc