当前位置: 首页 > ai >正文

Map遍历

第一种遍历方式键找值:

增强for循环:

通过获取元素中的键,get到对应的值,通过增强for循环获取集合里的键,然后用get方法通过键获取值

代码演示:

import java.text.ParseException;
import java.util.*;
import java.util.function.Consumer;import static java.lang.Math.abs;public class Test3 {public  static void main(String[] args){Map<String,String> map=new HashMap<>();map.put("A", "a");map.put("B", "b");map.put("C", "c");map.put("D", "d");Set<String> keys = map.keySet();for (String key : keys) {String s = map.get(key);System.out.println(key+"="+s);}}}

迭代器遍历:

import java.text.ParseException;
import java.util.*;
import java.util.function.Consumer;import static java.lang.Math.abs;public class Test3 {public  static void main(String[] args){Map<String,String> map=new HashMap<>();map.put("A", "a");map.put("B", "b");map.put("C", "c");map.put("D", "d");Set<String> s1 = map.keySet();Iterator<String> it = s1.iterator();//迭代器遍历while(it.hasNext()) {String s = it.next();String value = map.get(s);//获取键里面的值并传递给valueSystem.out.println(s + "=" + value);}}}

第二种遍历方式键值对

通过键值对对象进行遍历

import java.text.ParseException;
import java.util.*;
import java.util.function.Consumer;import static java.lang.Math.abs;public class Test3 {public  static void main(String[] args){Map<String,String> map=new HashMap<>();map.put("A", "a");map.put("B", "b");map.put("C", "c");map.put("D", "d");//通过一个方法来获取所有的键值对对象,返回一个Set集合Set<Map.Entry<String, String>> entrySet = map.entrySet();for (Map.Entry<String, String> stringStringEntry : entrySet) {String key = stringStringEntry.getKey();String value = stringStringEntry.getValue();System.out.println(key+"="+value);}}}

Lambda表达式遍历:

跟之前的遍历差不多,原理是依次得到每一个键和值,再调用方法

import java.text.ParseException;
import java.util.*;
import java.util.function.BiConsumer;
import java.util.function.Consumer;import static java.lang.Math.abs;public class Test3 {public  static void main(String[] args){Map<String,String> map=new HashMap<>();map.put("A", "a");map.put("B", "b");map.put("C", "c");map.put("D", "d");//底层原理:forEach其实就是利用第二种方式进行遍历,依次得到每一个键和值//再调用accept方法map.forEach(new BiConsumer<String, String>() {@Overridepublic void accept(String key, String value) {System.out.println(key+"="+value);}});
System.out.println("------------------------------------");
//我们来简化Lambda表达式map.forEach( (key,  value)->System.out.println(key+"="+value));};}

http://www.xdnf.cn/news/691.html

相关文章:

  • Linux 进程概念补充 (自用)
  • 【数据结构】红黑树
  • 2181、合并零之间的节点
  • 右起第2个LED灯的闪烁(STC89C52单片机)
  • HTTP 1.0 和 2.0 的区别
  • (done) 吴恩达版提示词工程 1. 引言 (Base LLM 和 Instruction Tuned LLM)
  • ESP32开发之任务创建
  • 用P0口实现流水灯效果(STC89C52单片机)
  • JavaScript解密实战指南:从基础到进阶技巧
  • 硬件电路(24)-NE555振荡电路
  • 六、小白如何用Pygame制作一款跑酷类游戏(静态障碍物和金币的添加)
  • c++通讯录管理系统
  • 运筹学之引力搜索
  • Mac上Cursor无法安装插件解决方法
  • 【KWDB 创作者计划】_上位机知识篇---ESP32-S3Arduino
  • Aerich实战指南:零基础掌握异步ORM数据库迁移工具
  • Linux `init 6` 相关命令的完整使用指南
  • Android Gradle多渠道打包
  • 【自然语言处理与大模型】Linux环境下Ollama下载太慢了该怎么处理?
  • AIStarter新版本发布:模型、插件与工作流的高效管理工具
  • 【C++初阶】第15课—模版进阶
  • 多模态大语言模型arxiv论文略读(三十)
  • 设计心得——函数参数的封装
  • Redis缓存降级的4种策略
  • QT实现串口透传的功能
  • OSPF综合实验——企业边界路由器、LSA收敛
  • 车载测试用例开发-如何平衡用例覆盖度和测试效率的方法论
  • VSCode 扩展离线下载方法
  • 如何编写JavaScript插件
  • 5、openfeign