在java开发中,hashMap是非常重要的容器类,存储的是键值对(key,value)。
HashMap继承AbstractMap,实现了Map、Cloneable、Serializable接口,非线程安全类,但是效率高。HashMap允许null健和null值,允许value重复,但不允许key重复。HashMap有两个参数影响其性能,初始容量和加载因子,当哈希表中的条目数超出加载因子与当前容量的乘积时,要对哈希表进行refresh操作,重建内部数据结构,容量扩大为之前的两倍,加载因子默认值为0.75。

HashMap的遍历方式
第一种,遍历HashMap的entrySet键值对集合,通过HashMap.entrySet()得到键值对集合,通过迭代器Iterator遍历集合得到key和value。

public static void main(String[] args) {Map<Object, Object> map = new HashMap<>();map.put("caocao","11");map.put("liubei","22");map.put("sunquan","33");first(map);}private static void first(Map<Object, Object> map) {Iterator<Map.Entry<Object, Object>> iterator = map.entrySet().iterator();while (iterator.hasNext()) {Map.Entry<Object, Object> entry = iterator.next();System.out.println("key:" + entry.getKey() + ",vaule:" + entry.getValue());}}

第二种,遍历HashMap的keySet集合,通过HashMap.keySet()得到key集合,通过迭代器Iterator遍历集合得到key和value。

private static void second(Map<Object, Object> map) {Iterator<Object> iterator = map.keySet().iterator();while (iterator.hasNext()) {Object key = iterator.next();System.out.println("key:" + key + ",vaule:" + map.get(key));}}

第三种,遍历HashMap的values集合,通过HashMap.valus()得到value集合,通过迭代器Iterator遍历集合得到key和value。

private static void third(Map<Object, Object> map) {Iterator<Object> iterator = map.values().iterator();while (iterator.hasNext()) {Object value = iterator.next();System.out.println("vaule:" + value);}}

第四种,遍历HashMap的entrySet键值对集合,通过HashMap.entrySet()得到键值对集合,通过for循环遍历集合得到key和value。

private static void fourth(Map<Object, Object> map) {for (Map.Entry<Object,Object> entry: map.entrySet()) {System.out.println("key:" + entry.getKey() + ",vaule:" + entry.getValue());}}

第五种,遍历HashMap的keySet集合,通过HashMap.keySet()得到key集合,通过for循环遍历集合得到key和value。

private static void fifth(Map<Object, Object> map) {for(Object key : map.keySet()) {System.out.println("key:" + key + ",vaule:" + map.get(key));}}

第六种,遍历HashMap的values集合,通过HashMap.valus()得到value集合,通过for循环遍历集合得到key和value。

private static void sixth(Map<Object, Object> map) {for (Object value : map.values()) {System.out.println("vaule:" + value);}}

第七种,通过Lambda遍历HashMap得到key和value

private static void seventh(Map<Object, Object> map) {map.forEach((key,value) -> {System.out.println("key:" + key + ",vaule:" + value);});}

第八种,通过Lambda遍历HashMap.entrySet()得到键值对集合得到key和value

private static void eighth(Map<Object, Object> map) {map.entrySet().forEach(item -> {System.out.println("key:" + item.getKey() + ",vaule:" + item.getValue());});}

第九种,通过Lambda遍历HashMap.keySet()得到key集合得到key和value

private static void ninth(Map<Object, Object> map) {map.keySet().forEach(item -> {System.out.println("key:" + item + ",vaule:" + map.get(item));});}

以上遍历主要Iterator遍历集合方式、for循环遍历集合方式,Lambda遍历集合方式,根据具体需求选用不同的方式,通过Iterator方式循环删除数据是安全的,for方式循环删除数据非安全,Lambda方式循环删除数据非安全,通过Iterator方式的效率也很高。

Java之hashMap遍历方式相关推荐

  1. Java 基础——HashMap 遍历方式

    目录 1.使用迭代器 (Iterator) EntrySet 的方式进行遍历 2.使用迭代器 (Iterator) KeySet 的方式进行遍历 3.使用 foreach EntrySet 的方式进行 ...

  2. Java中HashMap遍历的两种方式

    第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Ma ...

  3. Java HashMap 遍历方式性能探讨

    转载自 Java HashMap 遍历方式性能探讨 关于HashMap的实现这里就不展开了,具体可以参考JDK7与JDK8中HashMap的实现 JDK8之前,可以使用keySet或者entrySet ...

  4. java中hashmap遍历

    java中hashmap遍历有两种方法,第一种就是将所有的key放到set中,然后通过遍历set通过key来获取value,可以选择使用迭代器遍历也可以使用增强for来遍历,第二种可以使用entrys ...

  5. java中hashmap遍历的几种方法

    Map集合的遍历方式一:键找值 先获取Map集合的全部键的Set集合. 遍历键的Set集合,然后通过键提取对应值. public class HashMap {public static void m ...

  6. Java中集合遍历方式(List、Set、Queue、Deque、Stack、Map)

    什么是集合?通俗的讲,集合就是存储一组数据的容器,那么,相比较于同样是存储数据的数组,集合的优势就体现在集合的长度是可变的,而数组的长度是固定的.在我们常见的集合中,主要有两大类: Collectio ...

  7. java几种遍历方式以及效率对比

    几种遍历方式: /*** */ package effectiveUse;import java.util.Iterator; import java.util.List;/*** @author w ...

  8. java中hashMap遍历,JSONObject遍历

    1.hashmap 遍历 第一种使用迭代器 Map map = new HashMap(); Iterator iter = map.keySet().iterator(); while (iter. ...

  9. java遍历hashmapk v_Java HashMap 遍历方式探讨

    JDK8之前,可以使用keySet或者entrySet来遍历HashMap,JDK8中引入了map.foreach来进行遍历. keySet其实是遍历了2次,一次是转为Iterator对象,另一次是从 ...

最新文章

  1. 区块链简史:解读这场技术革命的前世今生
  2. 美国科学院2020新晋院士名单发布!中科院曹晓风及6位华人学者入选,去年还有高福和颜宁...
  3. 英伟达再发边缘AI计算设备:仅信用卡大小,性能比TX2强15倍
  4. SPDK,软件定义存储的催化剂
  5. SpaceEmacs Rock Day5 学习笔记
  6. go linux 源码编译环境,修改并编译golang源码
  7. CSS 框模型( Box module )
  8. angular input_更快的Angular应用程序
  9. Tomcat优化实践——网站运维
  10. Web前后端缓存技术(缓存的主要作用是什么)
  11. Google验证码生成
  12. dwg android软件,CAD迷你看图软件手机版
  13. google翻译自动检测语言翻译成中文
  14. 日记1-时间序列协整进步
  15. 无源滤波器和有源滤波器有什么区别?-道合顺大数据infinigo
  16. 配置Firefox火狐浏览器burpsuite https抓包
  17. 华为交换机端口vlan详解
  18. 行测-图形推理-2-黑白格类
  19. 实现阿里云视频直播流程
  20. 二代征信报告解读及信贷风控中的应用

热门文章

  1. layui 导出 excel 表格
  2. jeecg-boot自动生成代码_一款自动生成唯一头像的开源代码库
  3. 阿卡索获近亿元B轮融资,少儿在线英语为什么这么火?
  4. 老版(旧版)封神榜片头,片尾曲
  5. Vue项目中如何使用computed计算属性
  6. HTML5期末大作业:红酒主题网站设计——简洁红酒介绍网页(7页) HTML+CSS+JavaScript...
  7. 第一代android系统,第一代iPhone对比第一代安卓:谁抄谁了?
  8. 经典算法之顺序查找(Sequential Search)
  9. 不吃苦,你要青春何用
  10. 2021-06-05攻击Linux服务器的四种级别