本帖最后由 河道里抓鱼 于 2016-11-29 01:48 编辑
有个问题,视频里的day18的第7段解释为什么Entry前面的map.可以省略,解释原因是这里的Entry是HashMap里的内部类(实现了Map里的的那个Entry).那么我想问的是,可以省略难道原因不是import java.util.Map.Entry;这一句导入语句吗?如果是省略前缀的Entry代表直接引用,而不是父类引用.那么前面不该加上HashMap.吗?所以请问是不是说错了,急求解答!!!!!
package com.heima.map;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
public class Demo3_Iterator {
/**
* Map集合的第二种迭代,根据键值对对象,获取键和值
* A:键值对对象找键和值思路:
* 获取所有键值对对象的集合
* 遍历键值对对象的集合,获取到每一个键值对对象
* 根据键值对对象找键和值
*/
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("张三", 23);
map.put("李四", 24);
map.put("王五", 25);
map.put("赵六", 26);
//Map.Entry说明Entry是Map的内部接口,将键和值封装成了Entry对象,并存储在Set集合中
/*Set<Map.Entry<String, Integer>> entrySet = map.entrySet();
//获取每一个对象
Iterator<Map.Entry<String, Integer>> it = entrySet.iterator();
while(it.hasNext()) {
//获取每一个Entry对象
Map.Entry<String, Integer> en = it.next(); //父类引用指向子类对象
//Entry<String, Integer> en = it.next(); //直接获取的是子类对象
String key = en.getKey(); //根据键值对对象获取键
Integer value = en.getValue(); //根据键值对对象获取值
System.out.println(key + "=" + value);
}*/
for(Entry<String, Integer> en : map.entrySet()) {
System.out.println(en.getKey() + "=" + en.getValue());
}
}
}
|