使用迭代器对HashMap遍历时产生的疑问

使用迭代器对HashMap遍历时产生的疑问

HashMap使用迭代器对entrySet进行遍历的需要这样一句话

Map.Entry entry = (Map.Entry)iterator.next();

这里next()方法返回的是HashMap$Node类型,为什么一定要转型,不转的话为什么idea会提示这是Object型

img

img

在创建迭代器的时候没有声明类型吧,如果在创建迭代器的时候声明类型了就不用强制转换了

Map<String,String> map = new HashMap<>();
map.put("key","value");
Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
Map.Entry<String, String> next = it.next();