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 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 keys = hashMap.keySet();

// 再遍历保存所有key的Set集合,Set集合没有下标,遍历集合只有2种方式

// 迭代器遍历Set集合

Iterator 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> mapToSet = hashMap.entrySet();

// 迭代器遍历Set集合

Iterator> it1 = mapToSet.iterator();

while (it1.hasNext()) {

Map.Entry 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 mn : mapToSet) {

Integer key = mn.getKey();

String value = mn.getValue();

System.out.print(key + "-" + value + " "); // 1-张三 2-李四 3-王五 4-赵六

}

System.out.println();

}

}

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

  1. java map集合排序的_Java对Map集合进行排序

    Java对Map集合进行排序 实现 Comparator 接口,重写compare方法,完成自定义排序 int compare(Object o1, Object o2) 返回一个基本类型的整型 如果 ...

  2. java set遍历方式_java中的Set的使用以及各种遍历方法(较为全面)

    1. 概述 Java 中的Set和正好和数学上直观的集(set)的概念是相同的.Set最大的特性就是不允许在其中存放的元素是重复的.根据这个特点,我们就可以使用Set 这个接口来实现前面提到的关于商品 ...

  3. java判断集合为空_Java中判断集合类为空的方法

    *****需要引入Spring的核心Jar包***** 工具类: org.springframework.util.CollectionUtils 方法: public static boolean ...

  4. java集合框架中抽象有序列表的接口是_JAVA基础接口集合框架

    接口 -------------------------------------------------------------------------------- 一.接口(是一种规范) 1.接口 ...

  5. java并发集合有哪些_java中常见并发集合有哪些?详细解析

    关于java中有关集合的知识点,相信大家还是有所了解的.集合中所包含的知识点是非常丰富的,而且可以细分为很多类型.今天就来为大家介绍一下并发集合的有关知识,并且用实际代码为大家展示,一起来看看吧. 首 ...

  6. java list集合增删改_Java中集合类list的增删改查

    今天给大家带来的是Java中list类的使用,java.util 包提供了list类来对线性数据操作 List接口是Collection接口的子接口,List有一个重要的实现类--ArrayList类 ...

  7. java对集合的操作_Java中对List集合的常用操作

    目录: list中添加,获取,删除元素: list中是否包含某个元素: list中根据索引将元素数值改变(替换): list中查看(判断)元素的索引: 根据元素索引位置进行的判断: 利用list中索引 ...

  8. java中一个数轮流除去所有数_Java实现A、B两人轮流从盒中取球,取出球的数目必须是:1,3,7或者8个...

    import java.util.Scanner; /*** * 今盒子里有n个小球,A.B两人轮流从盒中取球,每个人从盒子中取出的球的数目必须是:1,3,7或者8个. A先取球,然后双方交替取球,直 ...

  9. 小汤学编程之JAVA基础day11——集合框架:List/Set/Map集合、Collections集合工具类、泛型、TreeMap和TreeSet

    一.集合的特点 二.继承结构图 三.List集合 1.特点     2.ArrayList类     3.LinkedList类     4.两者的对比     5.集合的遍历 四.Set集合 1.特 ...

最新文章

  1. 数组第一个值_Excel公式技巧69:查找第一个非空值
  2. 分析JVM双亲委派模型的类加载源码 自定义类加载器
  3. windows系统修改cmd窗口编码格式
  4. Effective C++学习第八天
  5. 数据结构实验三 树的遍历生成树
  6. 学习笔记2---基本设置
  7. python在哪里画柱形图_Python笔记:用pyecharts绘制柱形图
  8. C# Double toString保留小数点方法
  9. SQL Server常用查询指令
  10. 万兴pdf编辑解压后打不开_为什么有的PDF文档无法编辑?
  11. java按钮倒计时_js代码实现点击按钮出现60秒倒计时_javascript技巧
  12. 地月距离竟然如此遥远
  13. Android webview 播放视频及全屏
  14. java基于ssm的个人信息保险箱系统
  15. 【全栈接口测试进阶系列教程】精通api接口测试,接口分类,接口架构,http,webservice,dubbo接口协议,接口流程,接口工具,cookie,session,token接口鉴权原理以及实战
  16. zzzfun网站连接不上服务器,ZzzFun
  17. web2.0带来的狂潮
  18. Html结构及常用标签
  19. 第 338 场周赛 (力扣周赛)
  20. 十分钟计算机说课稿,我的十分钟说课稿

热门文章

  1. 【Leetcode 687】递归求最大相同路径
  2. hexo之next主题添加分类
  3. JS Navigator
  4. [转]STL(容器)与DEBUGNEW运算符冲突的解决
  5. 解决Eclipse自动补全变量名的问题
  6. Java基础知识强化之IO流笔记59:打印流
  7. WINHTTP的API接口说明。
  8. 【项目】ARX程序开发:框裁直线(Rect Trim Line)功能开发
  9. Android 中的线程有哪些,原理与各自特点
  10. java模拟浏览器请求HttpUtils,可秒杀京东优惠券