HashMap遍历方法是什么
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,这篇文章主要讲解了"HashMap遍历方法是什么",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"HashMap遍历方法是什么"吧!遍历方式Iterato
千家信息网最后更新 2025年02月04日HashMap遍历方法是什么
这篇文章主要讲解了"HashMap遍历方法是什么",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"HashMap遍历方法是什么"吧!
遍历方式
Iterator> entryIterator = map.entrySet().iterator();
while (entryIterator.hasNext()) {
Map.Entry next = entryIterator.next();
System.out.println("key=" + next.getKey() + " value=" + next.getValue());
}
Iterator iterator = map.keySet().iterator();
while (iterator.hasNext()){
String key = iterator.next();
System.out.println("key=" + key + " value=" + map.get(key));
}
map.forEach((key,value)->{
System.out.println("key=" + key + " value=" + value);
});
强烈建议使用第一种 EntrySet 进行遍历。
第一种可以把 key value 同时取出,第二种还得需要通过 key 取一次 value,效率较低, 第三种需要 JDK1.8 以上,通过外层遍历 table,内层遍历链表或红黑树。
notice
在并发环境下使用 HashMap 容易出现死循环。
并发场景发生扩容,调用 resize() 方法里的 rehash() 时,容易出现环形链表。这样当获取一个不存在的 key 时,计算出的 index 正好是环形链表的下标时就会出现死循环。
所以 HashMap 只能在单线程中使用,并且尽量的预设容量,尽可能的减少扩容。
在 JDK1.8 中对 HashMap 进行了优化: 当 hash 碰撞之后写入链表的长度超过了阈值(默认为8),链表将会转换为红黑树。
假设 hash 冲突非常严重,一个数组后面接了很长的链表,此时重新的时间复杂度就是 O(n) 。
如果是红黑树,时间复杂度就是 O(logn) 。
大大提高了查询效率。
感谢各位的阅读,以上就是"HashMap遍历方法是什么"的内容了,经过本文的学习后,相信大家对HashMap遍历方法是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
方法
就是
学习
复杂
内容
复杂度
效率
时间
环形
循环
下标
内层
同时
场景
外层
容量
尽可能
建议
思路
情况
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器怎么看单路还是双路
华为v5服务器管理员权限
C软件开发技术高转专D卷
行程卡数据库多久更新一次
江岸区营销网络安全维护收费标准
东昌学院网络安全招标
云南网络技术开发案例
树莓派数据库密码
服务器安全狗默认密码忘记
怎么把字节数组存到数据库
局 网络安全 规划 实施方案
外网连接gpu服务器
华为杯网络安全竞赛
网络安全法27条规定是什么
smart服务器推荐
番禺工程师软件开发招聘信息
软件开发我知道了什么
软件开发公司怎么缴税
国内的互联网网络安全状况
美光嵌入式软件开发工程师待遇
软件开发公司的质量
打印机服务器不能提供服务
服务器开淘宝
两个不同服务器数据库联查
网络安全应急支撑单位有什么
服务器磁盘读写速率怎么达到万兆
子夜网络技术安全团队
查看当前数据库表空间元素个数
软件开发可行性评估
js省市区三级数据库