1.使用Map的keySet()方法遍历map
弊端: 从Map中取得关键字之后,必须每次重复返回到Map中取得相对的值
Map<String, Integer> map = new HashMap<String,Integer>(10);
map.put("张三", 20);
map.put("李四", 26);
map.put("王五", 25);
map.put("赵六", 24);
// 指定泛型则迭代器获取值的时候不需要转型
Set<String> set = map.keySet();
Iterator<String> iterator = set.iterator();
// 从Map中取得关键字之后,必须每次重复返回到Map中取得相对的值
while(iterator.hasNext()) {
String key = iterator.next();
Integer value = map.get(key);
System.out.println(value);
}
2.使用Map的entrySet()方法和Map的子接口Entry<K, V>
/**
* Map类提供了一个称为entrySet()的方法,
* 这个方法返回一个Map.Entry实例化后的对象集。
* 接着,Map.Entry类提供了一个getKey()方法和一个getValue()方法,
* 因此,上面的代码可以被组织得更符合逻辑
* Entry<String, Integer>是Map的一个子接口
*
* 使用泛型
*/
Set<Entry<String, Integer>> entries = map.entrySet( );
if(entries != null) {
Iterator<Entry<String, Integer>> iterator2 = entries.iterator( );
while(iterator2.hasNext( )) {
// Map.Entry entry =iterator2.next( );
// 上面的语句使用泛型Entry<String, Integer> 为map下的接口
Entry<String, Integer> entry =iterator2.next( );
Object key = entry.getKey( );
Object value2 = entry.getValue();
System.out.println(value2);