Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式!

关于遍历Map集合的几种方式:

1.获取Map集合的所有key,通过遍历所有的key获取Map中对应的所有value。

用到的方法:Map中的keySet()方法, Set中的get(K key)方法。

2.把Map集合转换成Set集合,通过遍历Set集合获取key和value。

用到的方法:Map中的entrySet()方法,Map.Entry类中的getKey(),getValue()方法。

第2种方法比第1种方法效率要高,因为第1种获取key之后还要去Map集合中去找value,而第2种方法是直接从转成的Set集合中获取到key和value。

测试代码:

import java.util.*;public class Test02 {public static void main(String[] args) {// 先创建Map集合Map<Integer, String> hashMap = new HashMap<>();// 添加几个键值对hashMap.put(1, "张三");hashMap.put(2, "李四");hashMap.put(3, "王五");hashMap.put(4, "赵六");System.out.println(hashMap.size());  // 4// 1.获取Map集合的所有key,通过遍历所有的key获取Map中对应的所有value。// 先获取Map中所有的key,得到一个Set集合Set<Integer> keys = hashMap.keySet();// 再遍历保存所有key的Set集合,Set集合没有下标,遍历集合只有2种方式// 迭代器遍历Set集合Iterator<Integer> it = keys.iterator();while (it.hasNext()) {Integer key = it.next();String value = hashMap.get(key);System.out.print(key + "-" + value + "   ");  // 1-张三   2-李四   3-王五   4-赵六}System.out.println();// foreach遍历Set集合for (Integer i : keys) {Integer key = i;String value = hashMap.get(key);System.out.print(key + "-" + value + "   ");  // 1-张三   2-李四   3-王五   4-赵六}System.out.println();//2.把Map集合转换成Set集合,通过遍历Set集合获取key和value。// Map集合转成Set集合Set<Map.Entry<Integer, String>> mapToSet = hashMap.entrySet();// 迭代器遍历Set集合Iterator<Map.Entry<Integer, String>> it1 = mapToSet.iterator();while (it1.hasNext()) {Map.Entry<Integer, String> mn = it1.next();Integer key = mn.getKey();String value = mn.getValue();System.out.print(key + "-" + value + "   ");  // 1-张三   2-李四   3-王五   4-赵六}System.out.println();// foreach遍历Set集合for (Map.Entry<Integer, String> mn : mapToSet) {Integer key = mn.getKey();String value = mn.getValue();System.out.print(key + "-" + value + "   ");  // 1-张三   2-李四   3-王五   4-赵六}System.out.println();}
}

java map遍历_Java中Map集合的两种遍历方式相关推荐

  1. java多线程区别_Java中实现多线程的两种方式之间的区别

    Java提供了线程类Thread来创建多线程的程序.其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象.每个Thread对象描述了一个单独的线程.要产生一个线 ...

  2. java中两种遍历集合的方式_Java中Map集合的两种遍历方式

    Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...

  3. Java中List集合的三种遍历方式(全网最详)

    Map集合:链接: Map集合的五种遍历方式及Treemap方法 Set集合:链接: Java中遍历Set集合的三种方法 TreeSet集合:链接: Java深入了解TreeSet,和迭代器遍历方法 ...

  4. 1.JavaScript中定义数组的两种主要方式

    JavaScript中定义数组的两种主要方式(new Array()和[]方式) new Array() ①可以用像JAVA的那种写法的方式定义,如 var arr = new Array() 这样定 ...

  5. java 调用枚举种方法_Java中枚举类型的一种使用方式

    今天改同事的代码发现同事的代码中有大量的if else语句.很不美观而且可读性太差. 因为需要给前端一个key,value的列表.这个列表写死.然而同事的代码. 放几张图,大家自己感受.我都不知道以后 ...

  6. java多线程同步的四种方法_java中实现多线程的两种方法

    java多线程有几种实现方法,都是什么?同步有几种实java中多线程的实现方法有两种:1.直接继承thread类:2.实现runnable接口:同步的实现方法有五种:1.同步方法:2.同步代码块:3. ...

  7. Java中定义字符串的两种常见方式、使用==和equals()比较字符串

    在讲使用==和equals()比较字符串之前,我们首先要讲定义字符串的两种常见方式,一种是定义一个常量,即直接定义字符串,一种是通过new关键字定义一个变量,即使用String类定义字符串,如下图: ...

  8. Java中匿名类的两种实现方式

    使用匿名内部类课使代码更加简洁.紧凑,模块化程度更高.内部类能够访问外部内的一切成员变量和方法,包括私有的,而实现接口或继承类做不到.然而这个不是我说的重点,我说的很简单,就是匿名内部类的两种实现方式 ...

  9. 在前端网页设计中 align 和 valign 两种对齐方式的不同取值区分(持续补充)

    文章目录 前言 一.align 与 valign 的对齐方式与取值 二.常见应用区分整理 2.1.H5 页面设计的取值 2.2.表格标题的取值 2.3.表格属性的取值 总结 前言 不知道大家在学习 H ...

最新文章

  1. 做一个有姿态的女孩子
  2. Java 洛谷 P5461 赦免战俘讲解
  3. java表单上下左右滚动_怎么在网页中实现表格上下左右滚动
  4. react 动态添加class_02.react进阶指南
  5. 「干货」编程语言十大经典算法,你知道几个?
  6. Vue3 VSCode新建项目报错The template root requires exactly one element.
  7. 阿里云RPA专有云产品文档集合
  8. Windows下快速删除上万个文件和子目录
  9. 20165227朱越 预备作业3 Linux安装及学习
  10. Spring框架学习[IoC容器高级特性]
  11. softmax回归的从零开始实现
  12. uniapp-蓝牙模块封装
  13. ThinkPad SL400 改装Win2003方法以及驱动下载列表
  14. 开发宝典:数据库设计技巧,你知道几个?
  15. 高通发布骁龙845详细解读!
  16. x86、amd、arm和GPU
  17. canvas图形放大缩小鼠标拖拽
  18. pytorch将pt模型转onnx模型
  19. 服务器虚拟机如何连接显示器,Windows 10:如何在VMware虚拟机上使用双显示器
  20. 如何学好C语言--你的学渣朋友告诉你

热门文章

  1. 【MySQL】MySQL开启general_log报错ERROR 29 (HY000) not found (OS errno 13 - Permission denied)
  2. Spark: Structured + hive(Jdbc方式)卡死
  3. 【正则表达式】正则匹配注释
  4. 【Flink】UnsatisfieldlinkError : org.apache.hadoop.util.NativeCrc32
  5. Spring-IOC之BeanDefinitionHolder
  6. Spring: 事务传播机制
  7. 【Docer】Docer安装MySQL并且远程登录
  8. Portainer 安装与使用
  9. 微服务SpringCloud中的负载均衡,你都会么?
  10. 面试官最爱的 volatile 关键字,这些问题你都搞懂了没?