【Java 数据结构与算法】-遍历Map和Set的方式
作者:学Java的冬瓜
博客主页:☀冬瓜的主页🌙
专栏:【Java 数据结构与算法】

文章目录
- 一、遍历Map
- 法一 先获取Map集合的全部key的set集合,遍历map的key的Set集合
- 法二 把map的key和value打包成Set的key后的这个Set集合
- 法三 new一个BiConsumer<key, value>()
- 法四 使用lambda表达式
- 二、遍历Set
- 迭代器、foreach、lambda表达式
一、遍历Map
法一 先获取Map集合的全部key的set集合,遍历map的key的Set集合
- 先获取Map集合的全部key的set集合,遍历map的key的Set集合,通过map的key提取对应的value。
// 遍历Map的四种方式// 先获取Map集合的全部key的set集合,遍历map的key的Set集合,通过map的key提取对应的value。public static void orderMap1(){Map<Integer,String> map1 = new TreeMap<>();map1.put(1,"张三");map1.put(3,"lisi");map1.put(5,"lisi");Set<Integer> mapKey = map1.keySet();for (Integer key : mapKey) {String value = map1.get(key);System.out.print(key + " " + value + " ");}}
法二 把map的key和value打包成Set的key后的这个Set集合
- 使用foreach遍历把map的key和value打包成Set的key后的这个Set集合
// 使用foreach遍历把map的key和value打包成Set的key后的这个Set集合public static void orderMap2(){Map<Integer,String> map1 = new TreeMap<>();map1.put(1,"张三");map1.put(3,"lisi");map1.put(5,"lisi");Set<Map.Entry<Integer, String>> entries = map1.entrySet();for (Map.Entry<Integer,String> entry : entries) {System.out.print(entry.getKey() + " " + entry.getValue() + " ");}}
法三 new一个BiConsumer<key, value>()
- new一个BiConsumer<key, value>(),然后传入map.foreach()中(和传比较器一样)
// new一个BiConsumer<key, value>()public static void orderMap3(){Map<Integer,String> map1 = new TreeMap<>();map1.put(1,"张三");map1.put(3,"lisi");map1.put(5,"lisi");map1.forEach(new BiConsumer<Integer, String>() {@Overridepublic void accept(Integer integer, String s) {System.out.print(integer + " " + s + " ");}});}
法四 使用lambda表达式
- 使用lambda表达式
// 使用lambda表达式public static void orderMap4() {Map<Integer, String> map1 = new TreeMap<>();map1.put(1, "张三");map1.put(3, "lisi");map1.put(5, "lisi");map1.forEach((k,v)->{System.out.print(k + " " + v + " ");});}
二、遍历Set
由于简单,就不分开写了,直接放在Main方法里。
迭代器、foreach、lambda表达式
public class Main {// 测试使用Set的部分方法public static void main4(String[] args) {Set<String> set1 = new TreeSet<>();set1.add("张三");set1.add("李四");set1.add("王五");// 遍历Set的三种方式// 迭代器Iterator<String> iterator = set1.iterator();while (iterator.hasNext()) {System.out.print(iterator.next() + " ");}// foreachSystem.out.println();for (String k : set1) {System.out.print(k + " ");}// lambda表达式System.out.println();set1.forEach((k)->{System.out.println(k + " ");});}
}
相关文章:
【Java 数据结构与算法】-遍历Map和Set的方式
作者:学Java的冬瓜 博客主页:☀冬瓜的主页🌙 专栏:【Java 数据结构与算法】 文章目录一、遍历Map法一 先获取Map集合的全部key的set集合,遍历map的key的Set集合法二 把map的key和value打包成Set的key后的这个Set集合法…...
组件、套件、 中间件、插件
组件、套件、 中间件、插件 组件 位于框架最底层,是由重复的代码提取出来合并而成。组件的本质,是一件产品,独立性很强,组件的核心,是复用,与其它功能又有强依赖关系。 模块 在中台产品和非中台产品中&…...
自动化工具 pytest 内核测试平台落地初体验
测试平台,有人说它鸡肋,有人说它有用,有人说它轮子,众说纷纭,不如从自身出发,考虑是否要做测试平台: 第 1 阶段,用 Pythonrequests 写接口自动化。 第 2 阶段,选择 unit…...
Python 自动化指南(繁琐工作自动化)第二版:四、列表
原文:https://automatetheboringstuff.com/2e/chapter4/ 在开始认真编写程序之前,您需要理解的另一个主题是列表数据类型及其表亲元组。列表和元组可以包含多个值,这使得编写处理大量数据的程序更加容易。由于列表本身可以包含其他列表&#…...
大数据领域的发展及其对现实世界的价值
大数据已经成为全球各行业领域不可或缺的一部分,并且其应用不断涌现。尽管很多人最初对“大数据”这一术语表示怀疑和不信任,但大数据技术已经确立了稳定的发展方向。根据调研机构的预测,到2027年,全球大数据市场规模将达到1090亿…...
几种常见的架构模式
本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址 如果访问不了Github,…...
flutter安装各种问题汇总
C:\Users\Administrator>flutter doctor -v Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source! [√] Flutter (Channel stable, 3.7.0, on Microsoft Windows [版本 10.0.19044.1826], locale zh-CN) • Flutte…...
网络传输层
目录传输层再谈端口号端口号范围划分认识知名端口号netstatpidofUDP协议UDP协议端格式UDP的特点面向数据报UDP的缓冲区UDP使用注意事项使用udp协议 的应用层协议其它TCP协议TCP协议段格式如何理解链接如何理解三次握手如何理解四次挥手概念TIME_WAIT/CLOSE_WAITTCP策略确认应答…...
linux内核启动分析(二)
文章目录1. set_task_stack_end_magic2.smp_setup_processor_id3. debug_objects_early_init4. cgroup_init_early4.1 init_cgroup_root4.1.1 init_cgroup_housekeeping4.2 cgroup_init_subsys5. local_irq_disable5.1 raw_irqs_disabled5.2 raw_local_irq_disable5.3 trace_ha…...
『EasyNotice』.NET开源消息通知组件——快速实现邮件/钉钉告警通知
📣读完这篇文章里你能收获到 傻瓜式扩展方法直接使用如何通过EasyNotice快速实现钉钉/邮件的通知发送感谢点赞收藏,避免下次找不到~ 文章目录一、EasyNotice1. 功能介绍2. 源码地址二、项目接入1. 发送邮件通知Step 1 : 安装包,通过Nuget安装…...
JVM垃圾回收算法
垃圾标记阶段 对象存活判断:在堆里存放着几乎所有的Java对象实例,在GC执行垃圾回收之前,首先需要区分出内存中哪些是存活对象,哪些是已经死亡的对象。只有被标记为己经死亡的对象,GC才会在执行垃圾回收时,…...
怎么看待ChatGPT封号这件事呢?
最近的ChatGPT大量封号,刷爆了全网,我的两个个人账号被封禁了,不知道大家最近有没有遇到相关的报错信息,要么就是检查你当前的浏览器配置,最后来一个access denied,要么直接就给你来一个当前的国家不支持。…...
八、交换技术原理
(一)交换机 1、交换机介绍 一种用于电(光)信号转发的网络设备,可以为接入交换机的任意两个网络节点提供独享的电信号通路。 工作于第二层的叫交换机,工作于第三层的叫第三层交换机,最常见的是…...
什么是DHCP?DHCP有什么用?(中科三方)
在IP网络中,每一个连接的设备都需要分配一个唯一的IP地址,才能实现和Internet上其他设备的互联。在一些终端规模较大的网络中,需要为每一个主机手工配置IP地址,以避免IP地址的重复,如果主机发生变更,还要去…...
算法设计-二分
一、有序和单调 二分本质上是一种更加智能的搜索状态空间的方式,他需要状态空间的状态呈现一种“有序的一维数组”的形式,然后再进行搜索。所以一开始的排序是无法避免的。 因为二分的写法问题,所以应当怎样排序也是有一定讲究的&…...
隧道技术基础
隧道技术基础基本概念端口转发应用层代理基本概念 攻击者通过边界主机进入内网,往往会利用它当跳板进行横向渗透,但现在的内部网络大多部署了很多安全设备,网络结构错综复杂,对于某些系统的访问会受到各种阻挠,这就需…...
卡尔曼滤波浅析
文章目录前言任务状态预测外部影响因素外部不确定性状态更新利用测量进一步修正状态合并两个高斯分布公式汇总图形化解释总结(readme)references前言 Kalman Filter算法,是一种递推预测滤波算法,算法中涉及到滤波,也涉…...
Eolink Apikit 创建/生成 API 文档
在 API 研发管理产品中,几乎所有的协作工作都是围绕着 API 文档进行的。 我们在接触了大量的客户后发现,采用 文档驱动 的协作模式会比先开发、后维护文档的方式更好,团队协作效率和产品质量都能得到提高。因此我们建议您尝试基于文档来进行工…...
2023年上半年系统分析师备考法则
截止3月30日,上海、北京等地都开始报名,部分省市已经截止报名,大家如果还没报名成功的赶紧报名,千万别错过了,另外就是别忘了缴费,缴费成功才是报名成功。 报名网址:https://bm.ruankao.org.cn…...
【人工智能】—约束传播、弧约束、问题结果与问题分解、局部搜索CSP
【人工智能】—约束传播、弧约束、问题结果与问题分解、局部搜索CSP约束传播弧约束弧相容算法AC-3问题结构化简约束图-树结构CSP问题的局部搜索CSP的迭代算法举例:4-Queens加速:模拟退火法加速:最小最大优化(约束加权法)小结约束传播 前向检…...
Taotoken官方折扣与活动价接入实践带来的成本节省感受
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken官方折扣与活动价接入实践带来的成本节省感受 1. 背景与决策起点 作为个人开发者或小团队,在构建基于大模型的…...
保姆级教程:在HCL模拟器上给H3C路由器配置DHCP服务器(双网段实战)
从零构建H3C路由器双网段DHCP服务:模拟器实战与协议解析 在虚拟实验室中搭建网络环境已成为现代工程师的必备技能,而DHCP服务作为网络自动化的基石,其配置过程往往成为初学者接触企业级设备的第一个实战挑战。本文将使用H3C官方推出的HCL模拟…...
北航毕业论文LaTeX模板终极指南:快速掌握专业排版技巧
北航毕业论文LaTeX模板终极指南:快速掌握专业排版技巧 【免费下载链接】BUAAthesis 北航毕设论文LaTeX模板 项目地址: https://gitcode.com/gh_mirrors/bu/BUAAthesis 还在为北航毕业论文的格式要求而烦恼吗?手动调整页边距、页眉页脚、参考文献格…...
掌握Flash逆向工程:JPEXS免费反编译工具完全指南
掌握Flash逆向工程:JPEXS免费反编译工具完全指南 【免费下载链接】jpexs-decompiler JPEXS Free Flash Decompiler 项目地址: https://gitcode.com/gh_mirrors/jp/jpexs-decompiler 在Flash技术逐渐淡出历史舞台的今天,无数经典的Flash动画、游戏…...
不只是连线:用Cadence Virtuoso做PMOS/NMOS版图布局时,那些影响性能和良率的细节(以RF器件为例)
不只是连线:用Cadence Virtuoso做PMOS/NMOS版图布局时,那些影响性能和良率的细节(以RF器件为例) 在集成电路设计中,版图布局远不止是将晶体管简单连接起来的过程。特别是对于RF器件,版图的每一个细节都可能…...
OpenClaw 把 Context 管理抽象成了可插拔的 Context Engine,为什么要做这层抽象?这个设计能支持哪些不同的策略?
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:AI大模型原理和应用面试题 文章目录 一、🍀回答重点 二、🍀扩展知识 2.1 ☘️内置的 legacy 引擎 2.2 ☘️可以实现的高级策略 2.3 ☘️插件注册机制 …...
Linux MySQL服务器SSH多端口配置:解决22端口禁直连,兼顾安全与运维
公司Linux服务器(尤其是MySQL数据库服务器)出于安全管控,明确禁止直连22端口,要求所有SSH登录必须使用自定义端口;但22端口又不能修改或关闭,需保留给堡垒机、安全审计等核心服务使用。一边是安全策略的硬性…...
Cursor智能体工具包:从代码助手到自主编程代理的进化
1. 项目概述:从“智能代码补全”到“自主编程代理”的进化如果你和我一样,在过去一两年里深度使用过Cursor,那么你对它的第一印象大概率是“一个集成了AI的现代化代码编辑器”。它确实把智能代码补全、聊天式编程和代码理解做到了一个新高度&…...
通信中间件dlz.comm架构解析:从核心原理到高性能实践
1. 项目概述:一个通信中间件的诞生最近在重构一个分布式数据处理系统时,我又一次被底层通信的复杂性绊住了。不同的服务节点之间,数据包的序列化、网络传输、连接管理、异常处理……这些代码像藤蔓一样缠绕在业务逻辑里,每次增加一…...
汽车电子功能安全:锁步核与ECC技术解析
1. 功能安全与汽车电子:为什么它如此重要?在现代汽车电子系统中,功能安全已经从"锦上添花"变成了"不可或缺"。想象一下,当你的车辆以120km/h在高速公路上行驶时,电子稳定控制系统(ESC)突然因为一个…...
