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
0
投稿
猜你喜欢
- 一、位运算的分类与展现效果java位运算可以分为左移和右移,其中右移还有无符号右移。 java只对整型位移,可以分为int体系和long体系
- 一、背景当我们在drools中编写规则时,有些时候存在重复的代码,那么我们是否可以将这些重复代码抽取出来,封装成一个function来调用呢
- 一、搭建 mvc 环境新建一个 module 模块,创建 maven 工程,步骤跟以前一样,各种配置文件内容也可以拷贝修改一下即可。二、创建
- Lucene从今天开始,我们要开始介绍Lucene中索引构建的流程。因为索引构建的逻辑涉及到的东西非常多,如果从构建入口IndexWrite
- 本文实例为大家分享了使用PageHelper插件实现Service层分页的具体代码,供大家参考,具体内容如下使用场景:平时分页我们可以直接使
- springboot用以进行web项目开发的便捷性,本文不再赘述,主要是想将工作中基于springboot与gradle的多模块项目的构建经
- 开始学习WebSocket,准备用它来实现一个在页面实时输出log4j的日志以及控制台的日志。首先知道一些基础信息:1.java7 开始支持
- 在基于Mybatis-plus实现多租户架构中,介绍了在多租户项目中如果要开启一个子线程,那么需要手动进行RequestAttributes
- 如果在类路径上添加了Spring Boot Security依赖项,则Spring Boot应用程序会自动为所有HTTP端点提供基本身份验证
- 原理解析:利用RandomAccessFile在本地创建一个随机访问文件,文件大小和服务器要下载的文件大小相同。 根据线程的数量(假设有三个
- 背景今天面试字节算法岗时被问到的问题,让我用C++实现一个softmax函数。softmax是逻辑回归在多分类问题上的推广。大概的公式如下:
- 前言Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expe
- 英文设置加粗可以在xml里面设置: <SPAN style="FONT-SIZE: 18px">androi
- 项目开发中,经常会遇到定时任务的场景,Spring提供了@Scheduled注解,方便进行定时任务的开发概述要使用@Scheduled注解,
- 登录接口实现public User queryUser(String UserName, String Password,HttpServl
- 承蒙各位厚爱,我们一起每天进步一点点!(鼠标选中空白处查看答案)1、现有如下代码段:x = 2;while(x<n/2){x = 2*
- 使用spring redis的increment方法时,报错:nested exception is redis.clients.jedis
- Java实现按行读取大文件String file = "F:" + File.separator + "a.t
- 前言虽然从学java的第一个程序——helloworld至今,已经有好几个年头了。当时自己找资料,看视频,学习了java的输入输出流,多线程
- 大致思路:注解实现方式:就是用 反射机制. 获取指定的包下使用了注解的类,存储在一个map容器, 然后获取map容器下类的属性, 利用反射给