HashMap 的 entrySet 生成过程
原来以为entrySet是随着put操作一块更新的,后来发现是调用entrySet()方法时才生成,但是在调试的时候,竟然没发现生成entrySet的代码,求解。
下面是证明的代码,不直是否有问题。
这是源码,跟到这,发现找不到生成entrySet的代码
下面是证明的代码,不直是否有问题。
public static void main(String[] args){
Map<String, String> map = new HashMap<>();
map.put("1", "one");
Set<Map.Entry<String, String>> entries = null;
try {
Field field = map.getClass().getDeclaredField("entrySet");
field.setAccessible(true);
entries = (Set<Map.Entry<String, String>>)field.get(map);
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
System.out.println(entries); // null
System.out.println(map.entrySet()); // [1=one]
}这是源码,跟到这,发现找不到生成entrySet的代码
public Set<Map.Entry<K,V>> entrySet() {
Set<Map.Entry<K,V>> es;
return (es = entrySet) == null ? (entrySet = new EntrySet()) : es;
}
...全文
相关推荐
EAS 开发小白入门知识点
EAS 简单入门开发知识点分享,
软通动力面试集(Java、日语)
本文档包含了软通动力公司的多方面试题集,可通过该文档了解该公司并且该自己面试增加信心。
Java HashMap 如何正确遍历并删除元素的方法小结
主要介绍了Java HashMap 如何正确遍历并删除元素的方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
如何得到hashmap的索引
如何得到hashmap的索引,很好用,正在为hashmap烦恼的人看一下这个
Java HashMap三种循环遍历方式及其性能对比实例分析
主要介绍了Java HashMap三种循环遍历方式及其性能对比,结合具体实例形式分析了Java HashMap三种循环遍历方式的实现方法、运行效率及性能优劣,需要的朋友可以参考下


Java SE
