1 public static void main(String[] args) { 2 3 4 Map<String, String> map = new HashMap<String, String>(); 5 map.put("1", "value1"); 6 map.put("2", "value2"); 7 map.put("3", "value3"); 8 9 //第一种:普遍使用,二次取值 10 System.out.println("通过Map.keySet遍历key和value:"); 11 for (String key : map.keySet()) { 12 System.out.println("key= "+ key + " and value= " + map.get(key)); 13 } 14 15 //第二种 16 System.out.println("通过Map.entrySet使用iterator遍历key和value:"); 17 Iterator<Map.Entry<String, String>> it = map.entrySet().iterator(); 18 while (it.hasNext()) { 19 Map.Entry<String, String> entry = it.next(); 20 System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue()); 21 } 22 23 //第三种:推荐,尤其是容量大时 24 System.out.println("通过Map.entrySet遍历key和value"); 25 for (Map.Entry<String, String> entry : map.entrySet()) { 26 System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue()); 27 } 28 29 //第四种 30 System.out.println("通过Map.values()遍历所有的value,但不能遍历key"); 31 for (String v : map.values()) { 32 System.out.println("value= " + v); 33 } 34 }
在遍历request.getParameterMap的时候出现遍历value的值任然是一个对象或者报错[Ljava.lang.String; cannot be cast to java.lang.String
for(Iterator iter = map.entrySet().iterator();iter.hasNext();){ Map.Entry element = (Map.Entry)iter.next(); Object strKey = element.getKey(); Object strObj = element.getValue(); } 其中element.getValue();可以看出是数组的形式,获取只的时候需要str[0]