如何使用循环从hashmap获取值

时间:2014-02-18 14:09:52

标签: java hashmap

如何打印以下hashmap中的所有值

ServletContext appScope = request.getServletContext();
        Map<String, List<String>> onLine = (HashMap<String, List<String>>)appScope.getAttribute("User");
        if(onLine != null) {
            out.print(onLine.get("1"));
        }

5 个答案:

答案 0 :(得分:2)

if (onLine != null) {
    for (String k : onLine.keySet()) {
        for (String v : onLine.get(k)) {
            out.print(v);
        }
    }
}

答案 1 :(得分:2)

java.util.Map只有一个value()方法:

for(List<String> nextArray : onLine.values()) {
    for(String nextString : nextArray) {
        out.print(nextString);
    }
}

答案 2 :(得分:1)

试试这个:

if (onLine != null) {
    for (String key : onLine.keySet()) {
        for (List<String> val : onLine.get(key)) {
            for(String str : val){
                System.out.print(str);
            }
        }
    }
}

这将打印地图中的所有字符串。

答案 3 :(得分:1)

如果您需要键和值:

for( Map.Entry<String, List<String>> e : yourMap.entrySet() )
  System.out.println( "key=" + e.key() + ", value=" + e.value() );

答案 4 :(得分:1)

我写了一个演示,你可以尝试一下

public static void main(String[] args) {

         Map<String, Integer> map = new HashMap<String, Integer>();
         map.put("k1", 1);
         map.put("k2", 2);
         map.put("k3", 3);
         map.put("k4", 4);
         map.put("k5", 5);

         Set<String> keys = map.keySet();
         for(String key:keys) {
            System.out.println("key:" + key);
            System.out.println("value:" + map.get(key));
         }
}