Map集合的四种遍历方式,看一眼就会

2023-12-03 05:40

本文主要是介绍Map集合的四种遍历方式,看一眼就会,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

遍历Map和遍历List还是有很大区别的,初学者没接触过map的话可能看不太懂代码,我这里简单说一下。

Map中存储元素是是以“键值对”的方式,也就是key-value对。
Map.Entry 是Map中的一个接口,它的用途是表示一个映射项(里面有Key和Value),如下图所示:

在这里插入图片描述
所以遍历的时候我们可以通过Map的entrySet()方法,它返回一个实现Map.Entry接口的对象集合,每个entry对象中都存储这一对K-V对。我们就可以通过这个对象调用getKey()和getValue()轻松拿到需要的key和value

下面代码中的第二三种遍历方式就用到了entrySet()方法

//Map集合的四种遍历方式
public class MapDemo {public static void main(String[] args) {Map<String, Integer> map = new HashMap<>();map.put("tom",11);map.put("cindy",22);map.put("marry",42);//1、第一种遍历方法,得到key-->再拿到valuefor(String key : map.keySet()){  //keySet()返回此映射中包含的键的Set视图System.out.print(key+"="+ map.get(key)+" ");}//2、第二种遍历方法,通过Map.entrySet使用iterator遍历key和valueSet<Map.Entry<String, Integer>> entries = map.entrySet(); //entrySet()返回此映射中包含的entry的Set视图Iterator<Map.Entry<String, Integer>> iterator = entries.iterator();while (iterator.hasNext()){Map.Entry<String, Integer> next = iterator.next();System.out.print(next.getKey()+"="+next.getValue()+" ");}//3、第三种遍历方式,通过Map.entrySet遍历key和valuefor (Map.Entry<String,Integer> entry : map.entrySet()){System.out.print(entry.getKey()+"="+entry.getValue()+" ");}//4、第四种遍历方式,通过Map.values()遍历所有的value,但不能遍历keyfor (Integer integer: map.values()){System.out.print("value="+integer+" ");}}
}

这篇关于Map集合的四种遍历方式,看一眼就会的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/448281

相关文章

内核启动时减少log的方式

内核引导选项 内核引导选项大体上可以分为两类:一类与设备无关、另一类与设备有关。与设备有关的引导选项多如牛毛,需要你自己阅读内核中的相应驱动程序源码以获取其能够接受的引导选项。比如,如果你想知道可以向 AHA1542 SCSI 驱动程序传递哪些引导选项,那么就查看 drivers/scsi/aha1542.c 文件,一般在前面 100 行注释里就可以找到所接受的引导选项说明。大多数选项是通过"_

uva 11178 计算集合模板题

题意: 求三角形行三个角三等分点射线交出的内三角形坐标。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#include <vector>#include <

用命令行的方式启动.netcore webapi

用命令行的方式启动.netcore web项目 进入指定的项目文件夹,比如我发布后的代码放在下面文件夹中 在此地址栏中输入“cmd”,打开命令提示符,进入到发布代码目录 命令行启动.netcore项目的命令为:  dotnet 项目启动文件.dll --urls="http://*:对外端口" --ip="本机ip" --port=项目内部端口 例: dotnet Imagine.M

深入理解RxJava:响应式编程的现代方式

在当今的软件开发世界中,异步编程和事件驱动的架构变得越来越重要。RxJava,作为响应式编程(Reactive Programming)的一个流行库,为Java和Android开发者提供了一种强大的方式来处理异步任务和事件流。本文将深入探讨RxJava的核心概念、优势以及如何在实际项目中应用它。 文章目录 💯 什么是RxJava?💯 响应式编程的优势💯 RxJava的核心概念

【即时通讯】轮询方式实现

技术栈 LayUI、jQuery实现前端效果。django4.2、django-ninja实现后端接口。 代码仓 - 后端 代码仓 - 前端 实现功能 首次访问页面并发送消息时需要设置昵称发送内容为空时要提示用户不能发送空消息前端定时获取消息,然后展示在页面上。 效果展示 首次发送需要设置昵称 发送消息与消息展示 提示用户不能发送空消息 后端接口 发送消息 DB = []@ro

leetcode105 从前序与中序遍历序列构造二叉树

根据一棵树的前序遍历与中序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7] 返回如下的二叉树: 3/ \9 20/ \15 7   class Solution {public TreeNode buildTree(int[] pr

脏页的标记方式详解

脏页的标记方式 一、引言 在数据库系统中,脏页是指那些被修改过但还未写入磁盘的数据页。为了有效地管理这些脏页并确保数据的一致性,数据库需要对脏页进行标记。了解脏页的标记方式对于理解数据库的内部工作机制和优化性能至关重要。 二、脏页产生的过程 当数据库中的数据被修改时,这些修改首先会在内存中的缓冲池(Buffer Pool)中进行。例如,执行一条 UPDATE 语句修改了某一行数据,对应的缓

Collection List Set Map的区别和联系

Collection List Set Map的区别和联系 这些都代表了Java中的集合,这里主要从其元素是否有序,是否可重复来进行区别记忆,以便恰当地使用,当然还存在同步方面的差异,见上一篇相关文章。 有序否 允许元素重复否 Collection 否 是 List 是 是 Set AbstractSet 否

线程的四种操作

所属专栏:Java学习        1. 线程的开启 start和run的区别: run:描述了线程要执行的任务,也可以称为线程的入口 start:调用系统函数,真正的在系统内核中创建线程(创建PCB,加入到链表中),此处的start会根据不同的系统,分别调用不同的api,创建好之后的线程,再单独去执行run(所以说,start的本质是调用系统api,系统的api

Java 多线程的基本方式

Java 多线程的基本方式 基础实现两种方式: 通过实现Callable 接口方式(可得到返回值):