0

可能重复:
如何遍历地图中的每个条目?

我遵循此解决方案无效:https ://stackoverflow.com/a/1835742/666468

我正在尝试输出此地图:

//protected Map<String,String> getImageTagAttributes()
Image image = new Image(resource);
for (Map<String, String> foo : image.getImageTagAttributes()) {
        String key = foo.getKey();
        String value = foo.getValue();

        //output here
    }

但是我收到了这个错误:Can only iterate over an array or an instance of java.lang.Iterable

我也导入了java.util.Iterator,但没有运气。

ps 我希望我可以安装和使用 JSTL,但这不是我的决定。

4

3 回答 3

2

不知道你从哪里得到的那Image门课,但如果image.getImageTagAttributes()返回,Map<String, String>那么也许试试这种方式

Image image = new Image(resource);
Map<String, String> map = image.getImageTagAttributes();
for (Map.Entry<String,String> foo : map.entrySet()) {
    String key = foo.getKey();
    String value = foo.getValue();

    //output here
}
于 2013-01-31T17:43:02.873 回答
0

您不能为每个循环迭代 Map。

获取地图对象键集,然后对其进行迭代。

然后在 for 循环中尝试从映射中检索每个键的值。

于 2013-01-31T17:36:06.143 回答
0

因为这不是迭代 Map 的正确方法:

    Image image = new Image(resource);
    Map<String, String> foo =  image.getImageTagAttributes();
    Set<String> key = foo.keyset(); 
     for ( k : keys ) {
           String value = foo.get(k);
        //output here
    }

或者你可以这样交互:

    Image image = new Image(resource);
    Map<String, String> foo =  image.getImageTagAttributes();
    Set<Map.Entry<String,String>> entries = foo.entrySet();

    for(Map.Entry<String, String> e : entries){
       String key  = e.getKey();
       String value = e.getValue();
        //output
    }

在我的回答中,我想这会image.getImageTagAttributes();返回一个Map<String,String>

于 2013-01-31T17:36:22.697 回答