Java中遍历Map的六种方法实现
作者:Janson666 发布时间:2022-03-21 13:30:58
标签:Java,遍历,Map
1. 遍历map方法
通过 keySet() 方法获取全部的key值;
通过 values() 方法获取全部的value值;
通过遍历key值获取value值;
通过entrySet()方法,进行遍历;
使用lambda表达式;
采用迭代器方式,方便进行元素的删除操作;
2. 方案实现
2.1 获取全部的key值
/**
* 1.获取全部的key值
*/
public void testMap1(){
HashMap<String, Object> map = new HashMap<>();
Set<String> keySet = map.keySet();
for (String key: keySet){
System.out.println(key);
}
}
2.2 获取全部的value值
/**
* 2.获取全部的value值
*/
public void testMap2(){
HashMap<String, Object> map = new HashMap<>();
Collection<Object> values = map.values();
for (Object value: values){
System.out.println(value);
}
}
2.3 通过遍历key值获取value值
/**
* 3.通过遍历key值获取value值
*/
public void testMap3(){
HashMap<String, Object> map = new HashMap<>();
Set<String> keySet = map.keySet();
for (String key: keySet){
Object value = map.get(key);
System.out.println(value);
}
}
2.4 通过entrySet()方法进行遍历
/**
* 4.通过entrySet()方法,进行遍历
*/
public void testMap4(){
HashMap<String, Object> map = new HashMap<>();
Set<Map.Entry<String, Object>> entrySet = map.entrySet();
for (Map.Entry<String, Object> entry: entrySet){
// entry代表map元素的一个对象,通过对象调用getValue()方法,获取value数据,也可以调用getKey()方法,获取key值
Object value = entry.getValue();
System.out.println(value);
}
}
2.5 使用lambda表达式
/**
* 5.使用lambda表达式
*/
public void testMap5(){
HashMap<String, Object> map = new HashMap<>();
map.forEach((key,value)->{
// 直接获取key值和value值
System.out.println("key: " + key + "value: " + value);
});
}
2.6 采用迭代器方式方便进行元素的删除操作
/**
* 6.采用迭代器方式,方便进行元素的删除操作
*/
@Test
public void testMap6(){
HashMap<String, Object> map = new HashMap<>();
map.put("77","6666");
Iterator<Map.Entry<String, Object>> iterator = map.entrySet().iterator();
while (iterator.hasNext()){
Map.Entry<String, Object> entry = iterator.next();
if (entry.getKey().equals("77")){
iterator.remove();
}
}
}
3. 总结
如果只需要key值,则直接使用 keySet()方式;
如果只需要value值,则直接使用values() 方式;
如果需要进行遍历key,value,可以用entrySet() 或者 lambda表达式;
如果需要进行遍历删除,可以用 iterator() 迭代器方式;
来源:https://blog.csdn.net/qq_42102911/article/details/128131412


猜你喜欢
- Field 提供有关类或接口的单个字段的信息,以及对它的动态访问权限。反射的字段可能是一个类(静态)字段或实例字段。Field 成员变量的介
- 本文实例为大家分享了java实现砸金蛋抽奖的具体代码,供大家参考,具体内容如下代码如下需求:用户每一次砸金蛋,抽中一等奖的概率为2% 二等奖
- 示例1项目结构代码controller中 UserController.javapackage com.example.demo1110.c
- volatile关键字相信了解Java多线程的读者都很清楚它的作用。volatile关键字用于声明简单类型变量,如int、float、boo
- 如果还不知道DecorView,那也没有什么关系 ^_^先来看看实现的效果实现的大致思路首先需要明白什么是DecorView,他是andro
- <%@ page language="java" contentType="text/html; cha
- 本文介绍了spring cloud Feign使用中遇到的问题总结,分享给大家,具体如下:问题一:在前面的示例中,我们讲过@RequestM
- 前言 需要实现环(圆)形菜单。效果预览(更多效果请下载源码体验):实现代码1.CircularMenuItemCustomCont
- 在做商城的项目中,有这么个需求,就是一个产品下有两个价格,一个是市场价,一个是销售价,这时要把市场价添加个删除线;刚开始遇到这个时,在网上找
- 之前也是在网上看到这种效果,不过是滚动listview来改变标题栏的颜色,感觉那个应用的比较少,比如我要滚动scrollview来实现呢,那
- 今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都是可以提取出来的,就自己把那些公共部分提出出来,以后如果要获取某部分的硬件信息就
- c++换行符有哪些\n 换行,光标移到下一行的开头;endl,把缓冲槽的内容输出到控制台;\r 回车,光标移到当前行的开头,不会换到下一行,
- MyBatis源码解析_获取SqlSessionFactory我们都知道,在Mybatis中,对数据库的增删改查,实际上是由SqlSessi
- 前言最近开发中用到许多对话框,之前都是在外面的代码中创建AlertDialog并设置自定义布局实现常见的对话框,诸如更新提示等含有取消和删除
- File类简介package com.file;import java.io.File;import java.io.IOException
- 我最近上班又遇到一个小难题了,就是如题所述:ViewPager预加载的问题。相信用过ViewPager的人大抵都有遇到过这种情况,网上的解决
- 闲来无事,用C++做了一个图书管理系统,主要有借书、还书、图书管理、用户管理等功能,主要用到的技术有容器和文件,以及类的封装#include
- 今天因为发布swagger-spring-boot-starter做一个问题的修复,然后碰到了下面这个问题,记录一下解决过程,帮助后续碰到类
- 官网下载直接打开官网:http://www.oracle.com/technetwork/java/javase/downloads/jdk
- 前言2016年3月修改,结合自己的工作和平时学习的体验重新谈一下为什么要进行代码优化。在修改之前,我的说法是这样的:就像鲸鱼吃虾米一样,也许