2

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

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>

但是我很确定我做对了,我对迭代地图或任何东西并不陌生,但它仍然是星期二早上。

问候。

4

1 回答 1

3

改变这一行 -

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

到 -

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

查看JavaDoc

于 2013-07-23T09:35:41.830 回答