今天在看TIJ时,发现一个Map.Entry 类,发现这个类可以更好的遍历Map中的key和value。 Map.Entry类在API中是这样定义的:
-
public static interface
Map.Entry<K,V>
映射项(键-值对)。
简单的就是说Map.Entry是个接口,它用来存放映射项(key和value),而map.entrySet()方法返回一个Set,里面存放了这些映射项。
于是对于Map类的遍历,我们就可以采用更加简洁的方法,看下例:Set entries = map.entrySet( );
Iterator iterator = entries.iterator( );
while(iterator.hasNext( )) {
Map.Entry entry =iterator.next( );//entry是一个键值项
Object key = entry.getKey( );
Object value = entry.getValue();
}
这样就不用每次都先从Map中拿key,然后再返回到map中取相应的值这么繁琐了。
============================修改分割线====================================
有如下map
Map map = new HashMap();
map.put("key1", "value1");
map.put("key2", "value2");
方法一:
Iterator it = map.values().iterator();//使用现成的Iterator :map.values().iterator
while (it.hasNext()) {
String val = (String)it.next();
System.out.println(val);
}
方法二:
Set<String> set = map.keySet(); //使用map.keySet()将map的key放到集合中,再遍历之 for (String s:set) { System.out.println(s+","+map.get(s)); }