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

Java中的Map常见使用案例代码

以下是一些Java中Map的常见使用案例和具体代码实现:

Map的遍历
Map<String, Integer> map = new HashMap<>();
map.put(“apple”, 10);
map.put(“banana”, 20);
map.put(“orange”, 30);

// 遍历方式一:使用entrySet()方法遍历

for (Map.Entry<String, Integer> entry : map.entrySet()) {System.out.println("key: " + entry.getKey() + ", value: " + entry.getValue());
}

// 遍历方式二:使用keySet()方法遍历

for (String key : map.keySet()) {System.out.println("key: " + key + ", value: " + map.get(key));
}

// 遍历方式三:使用forEach()方法遍历
map.forEach((key, value) -> System.out.println("key: " + key + ", value: " + value));
在这个代码中,我们首先创建了一个HashMap对象,并向其中添加了三个键值对。然后,我们演示了三种不同的遍历方式,分别是使用entrySet()方法、keySet()方法和forEach()方法。这三种方式都可以遍历Map中的键值对,但是使用entrySet()方法的效率最高,因为它只需要遍历一次Map中的元素。

Map的排序

Map<String, Integer> map = new HashMap<>();
map.put("apple", 10);
map.put("banana", 20);
map.put("orange", 30);

// 按照键值升序排序

Map<String, Integer> sortedMap = new TreeMap<>(map);
sortedMap.forEach((key, value) -> System.out.println("key: " + key + ", value: " + value));

// 按照键值降序排序

Map<String, Integer> reverseSortedMap = new TreeMap<>(Collections.reverseOrder());
reverseSortedMap.putAll(map);
reverseSortedMap.forEach((key, value) -> System.out.println("key: " + key + ", value: " + value));

在这个代码中,我们首先创建了一个HashMap对象,并向其中添加了三个键值对。然后,我们演示了两种不同的排序方式,分别是按照键值升序排序和按照键值降序排序。我们使用TreeMap对象来进行排序,并通过forEach()方法遍历排序后的Map对象。

Map的过滤
Map<String, Integer> map = new HashMap<>();
map.put("apple", 10);
map.put("banana", 20);
map.put("orange", 30);// 过滤出键值大于20的元素
Map<String, Integer> filteredMap = new HashMap<>();
for (Map.Entry<String, Integer> entry : map.entrySet()) {if (entry.getValue() > 20) {filteredMap.put(entry.getKey(), entry.getValue());}
}
filteredMap.forEach((key, value) -> System.out.println("key: " + key + ", value: " + value));

在这个代码中,我们首先创建了一个HashMap对象,并向其中添加了三个键值对。然后,我们通过遍历map对象中的键值对,过滤出其中值大于20的元素,并将过滤结果添加到一个新的HashMap对象中。最后,我们使用forEach()方法遍历过滤后的Map对象,并打印出每个键值对。

总之,Map是Java中常用的一种数据结构,可以用来存储键值对,并提供了丰富的方法和功能,例如遍历、排序、过滤等。掌握Map的基本使用方法和常见操作,可以帮助我们更好地处理键值对数据,并提高程序的效率和可读性。

除了上面提到的去重、遍历、排序、过滤等操作,Map还有一些其他常用的操作,以下是一些常见的操作及其代码示例:

获取Map中的元素个数
可以使用size()方法获取Map中的元素的个数,例如:

Map<String, Integer> map = new HashMap<>();
map.put("apple", 10);
map.put("banana", 20);
map.put("orange", 30);int size = map.size();
System.out.println(size);

判断Map是否为空
可以使用isEmpty()方法判断Map是否为空,例如:

Map<String, Integer> map = new HashMap<>();
boolean isEmpty = map.isEmpty();
System.out.println(isEmpty);

判断Map中是否包含某个键或值
可以使用containsKey()方法判断Map中是否包含某个键,使用containsValue()方法判断Map中是否包含某个值,例如:

Map<String, Integer> map = new HashMap<>();
map.put("apple", 10);
map.put("banana", 20);
map.put("orange", 30);boolean containsKey = map.containsKey("apple");
boolean containsValue = map.containsValue(20);
System.out.println(containsKey);
System.out.println(containsValue);

获取Map中的键集合或值集合
可以使用keySet()方法获取Map中所有键的集合,使用values()方法获取Map中所有值的集合,例如:

Map<String, Integer> map = new HashMap<>();
map.put("apple", 10);
map.put("banana", 20);
map.put("orange", 30);Set<String> keySet = map.keySet();
Collection<Integer> values = map.values();
System.out.println(keySet);
System.out.println(values);

获取Map中的键值对集合
可以使用entrySet()方法获取Map中所有键值对的集合,例如:

Map<String, Integer> map = new HashMap<>();
map.put("apple", 10);
map.put("banana", 20);
map.put("orange", 30);Set<Map.Entry<String, Integer>> entrySet = map.entrySet();
for (Map.Entry<String, Integer> entry : entrySet) {System.out.println("key: " + entry.getKey() + ", value: " + entry.getValue());
}

删除Map中的元素
可以使用remove()方法删除Map中的元素,例如:

Map<String, Integer> map = new HashMap<>();
map.put("apple", 10);
map.put("banana", 20);
map.put("orange", 30);map.remove("banana");
System.out.println(map);

以上是Map中一些常见的操作及其代码示例,掌握这些操作可以帮助我们更好地处理键值对数据,并提高程序的效率和可读性。

相关文章:

Java中的Map常见使用案例代码

以下是一些Java中Map的常见使用案例和具体代码实现&#xff1a; Map的遍历 Map<String, Integer> map new HashMap<>(); map.put(“apple”, 10); map.put(“banana”, 20); map.put(“orange”, 30); // 遍历方式一&#xff1a;使用entrySet()方法遍历 for (M…...

计算机视觉实验:图像处理综合-路沿检测

目录 实验步骤与过程 1. 路沿检测方法设计 2. 路沿检测方法实现 2.1 视频图像提取 2.2 图像预处理 2.3 兴趣区域提取 2.4 边缘检测 ​​​​​​​2.5 Hough变换 ​​​​​​​2.6 线条过滤与图像输出 3. 路沿检测结果展示 4. 其他路沿检测方法 实验结论或体会 实…...

Linux环境下VS code的python与C++调试环境的安装

Linux环境下VS code的python与C调试环境的安装 文章目录 Linux环境下VS code的python与C调试环境的安装前言一、云服务器的环境二、VS code相关信息三、python 开发环境配置四、C开发环境配置1.测试main.cpp2.进行debug3.进行debug程序4.运行main.cpp程序步骤 前言 最近写的 C&…...

AlexNet卷积神经网络-笔记

AlexNet卷积神经网络-笔记 AlexNet卷积神经网络2012年提出 测试结果为&#xff1a; 通过运行结果可以发现&#xff0c; 在眼疾筛查数据集iChallenge-PM上使用AlexNet&#xff0c;loss能有效下降&#xff0c; 经过5个epoch的训练&#xff0c;在验证集上的准确率可以达到94%左右…...

剑指 Offer 53 - I. !!在排序数组中查找数字 I (考查二分法)

剑指 Offer 53 - I. 在排序数组中查找数字 I 统计一个数字在排序数组中出现的次数。 示例 1: 输入: nums [5,7,7,8,8,10], target 8 输出: 2 示例 2: 输入: nums [5,7,7,8,8,10], target 6 输出: 0 提示&#xff1a; 0 < nums.length < 105 -109 < nums[i] &l…...

RANSAC算法在Python中的实现与应用探索:线性拟合与平面拟合示例

第一部分:RANSAC算法与其应用 在我们的日常生活和多个领域中,如机器学习,计算机视觉,模式识别等,处理数据是一个非常重要的任务。尤其是当我们需要从嘈杂的数据中获取信息或拟合模型时。有时候,数据可能包含异常值或噪声,这可能会对我们的结果产生重大影响。为了解决这…...

PHP接口自动化测试框架实现

我们来看一个简单的PHP实现的超简单的接口。 ...//报名验证 private function apply_verify() {$raid $this->input->get_post(raid);$mid $this->input->get_post(mid);if (!$raid || !$mid) {$this->ret_json(10021, 参数错误);}$this->load->model(…...

VLAN原理+配置

目录 一&#xff0c; 以太网二层交换机 二&#xff0c;三层架构&#xff1a; 三&#xff0c;VLAN配置思路 1.创建vlan 2.接口划入vlan 3.trunk干道 4.vlan间路由器 5.DHCP池塘配置 四&#xff0c;华为VLAN部分的接口模式讲解&#xff1a; 五&#xff0c;华为VLAN部分的…...

MongoDB文档-基础使用-在客户端(dos窗口)/可视化工具中使用MongoDB基础语句

阿丹&#xff1a; 本文章将描述以及研究mongodb在客户端的基础应用以及在spring-boot中整合使用mongodb来完成基本的数据增删改查。 先放官方的文章 MongoDB CRUD操作 - MongoDB-CN-Manual 本文章分为&#xff1a; 在客户端&#xff08;dos窗口&#xff09;/可视化工具中使用…...

“RISC-V成长日记” blog发布,第一个运行在RISC-V服务器上的blog?

尽管推特、公众号、微博、抖音等社交平台风靡一时&#xff0c;但blog&#xff08;博客&#xff09;在全世界依然经久不衰&#xff0c;尤其是在技术领域。对于博主而言&#xff0c;博客是他们独立创作的天地&#xff0c;可以随时更新内容和故事&#xff0c;确保素材的时效性。此…...

gitlab配置webhook

一.前言 当需要做jenkins的自动化触发构建时&#xff0c;就需要配置gitlab的webhook功能&#xff0c;以下来展示以下如何配置gitlab的webhook&#xff0c;jenkins的配置就不在这里展示了&#xff0c;可以去看我devops文章的完整配置 二.配置 在新版本的gitlab中&#xff0c…...

编译安装Linux内核实践与踩坑

编译安装Linux内核实践与踩坑 1. 参考方案 先留个坑 1. 参考方案 编译安装linux内核ShawnZhong的仓库make mrproper make oldconfig scripts/config --set-str SYSTEM_TRUSTED_KEYS "" KBUILD_BUILD_TIMESTAMP make CC"ccache gcc" -jnproc LOCALVERSION-…...

郑州https数字证书

很多注重隐私的网站都注重网站信息的安全&#xff0c;比如购物网站就需要对客户的账户信息以及支付信息进行安全保护&#xff0c;否则信息泄露&#xff0c;客户与网站都有损失&#xff0c;网站也会因此流失大量客户。而网站使用https证书为客户端与服务器之间传输的信息加了一个…...

第125天:内网安全-隧道技术SMBICMP正反向连接防火墙出入规则上线

知识点 #知识点&#xff1a; 1、入站规则不出网上线方案 2、出站规则不出网上线方案 3、规则-隧道技术-SMB&ICMP-隧道技术&#xff1a;解决不出网协议上线的问题&#xff08;利用出网协议进行封装出网&#xff09; -代理技术&#xff1a;解决网络通讯不通的问题&#xff0…...

性能测试怎么做?测试工具怎么选择?

在当前软件测试行业&#xff0c;熟练掌握性能测试已经是测试工程师们面试的敲门砖了&#xff0c;当然还有很多测试朋友们每天的工作更多的是点点点&#xff0c;性能方面可能也只是做过简单的并发测试&#xff0c;对于编写脚本&#xff0c;搭建环境方面也比较陌生。今天这篇文章…...

【Eclise配置Jdk环境】Jre环境常见配置错误问题

1、问题描述&#xff1a;执行Run As → Maven install 报出以下错误。 [INFO] Scanning for projects... [INFO] [INFO] -------------------------< com.example:gobang >------------------------- [INFO] Building gobang 0.0.1-SNAPSHOT [INFO] -------------------…...

UM2080F32——32位SoC芯片

UM2080F32是基于ARM Cortex-M0内核的超低功耗、高性能的、单片集成(G)FSK/OOK无线收发机的32位SoC芯片。工作于200MHz~960MHz范围内&#xff0c;支持灵活可设的数据包格式&#xff0c;支持自动应答和自动重发功能&#xff0c;支持跳频操作&#xff0c;支持FEC功能&#xff0c;同…...

IDEA基础使用

IDEA基础使用 1、IDEA中显示用法和用户截图展示有调用显示无调用显示 对应方法 2、如何找出项目中所有不被调用方法截图展示对应方法 3、常用代码(Code)说明及快捷键:4、未完待续待日后更新。。。总结&#xff1a;欢迎指导&#xff0c;也祝码友们代码越来越棒&#xff0c;技术越…...

[数据集][目标检测]遛狗不牵绳数据集VOC格式-1980张

数据集格式&#xff1a;Pascal VOC格式(不包含分割路径的txt文件和yolo格式的txt文件&#xff0c;仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数)&#xff1a;1980 标注数量(xml文件个数)&#xff1a;1980 标注类别数&#xff1a;5 标注类别名称:["dog","p…...

基于WebRTC升级的低延时直播

快直播-基于WebRTC升级的低延时直播-腾讯云开发者社区-腾讯云 标准WebRTC支持的音视频编码格式已经无法满足国内直播行业需求。标准WebRTC支持的视频编码格式是VP8/VP9和H.264&#xff0c;音频编码格式是Opus&#xff0c;而国内推流的音视频格式基本上是H.264/H.265AAC的形式。…...

从传统后端到阿里大模型应用层:我的两年转型之路,收藏这份进阶指南!

本文分享了一位传统后端开发转向大模型应用层的成长历程。作者通过五年学习&#xff0c;从初识LLM API使用&#xff0c;到深入理解模型原理&#xff0c;再到掌握RAG技术和流式编程&#xff0c;最终成功获得字节超30%涨幅的Agent开发岗位。文章强调提示词写作、模型微调、开源项…...

从视频孪生到空间计算:镜像视界以AI重构三维感知新范式

一、时代拐点&#xff1a;视频孪生的结构性瓶颈与升级刚需1.1 行业拐点已至Gartner最新报告显示&#xff0c;数字孪生技术已全面进入生产力成熟期&#xff0c;但公安、港口、低空经济等核心场景的规模化落地&#xff0c;正遭遇结构性天花板——传统视频孪生本质上是“二维像素的…...

一款基于 .NET 开源、跨平台应用程序自动升级组件讼

基础示例&#xff1a;单工作表 Excel 转 TXT 以下是将一个 Excel 文件中的第一个工作表转换为 TXT 的完整步骤&#xff1a; 1. 加载并读取Excel文件 from spire.xls import * from spire.xls.common import * workbook Workbook() workbook.LoadFromFile("示例.xlsx"…...

5步轻松升级:让2008-2017年Intel Mac运行最新macOS的完整指南

5步轻松升级&#xff1a;让2008-2017年Intel Mac运行最新macOS的完整指南 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 还在为苹果官方不再支持的老款Mac而…...

告别Blob分析:Halcon差异化模型在复杂印刷品检测中的降维打击

印刷品缺陷检测的技术革命&#xff1a;Halcon差异化模型实战解析 当产线上每分钟流过数百个印刷品时&#xff0c;传统Blob分析就像用放大镜检查跑车——方法没错&#xff0c;但工具完全跟不上节奏。键盘字符检测这类高精度场景中&#xff0c;0.1mm的油墨缺失或1个像素的异物都可…...

医疗器械软件生命周期管理注意事项

医疗器械软件生命周期管理注意事项 医疗器械软件生命周期管理需遵循严格的法规要求和质量控制标准&#xff0c;确保软件的安全性、有效性和合规性。以下是关键注意事项&#xff1a; 法规与标准合规 确保符合所在地区的法规要求&#xff0c;如FDA的21 CFR Part 820&#xff08;美…...

当主管要诀

1、当主管一定要闲&#xff0c;原因如下&#xff1a;✅ 做主管&#xff0c;你的工作不再是单一工种的责任范围&#xff0c;而是整个团队的责任人&#xff0c;你要做好合理的授权、规划、分工。✅ 你不是救火队员&#xff0c;你也不能代表团队的最高水平&#xff0c;授之以鱼不如…...

RecursiveCharacterTextSplitter类解读

基于 LangChain 当前官方文档与官方源码/参考入口&#xff0c;RecursiveCharacterTextSplitter 可以这样理解&#xff1a; 文章目录1) 切分原理2) 关键参数3) 方法接口4) 适用边界5) 中文场景优化6&#xff09;核心类方法的使用1. split_text(text: str) -> list[str]2. cre…...

团队协作痛点怎么破?高安全性与高性价比企业云盘深度对比

近日&#xff0c;众多小微企业、创业团队与个人工作室在寻求高效协同工具时迎来了利好——随着2026年企业级SaaS市场的进一步成熟&#xff0c;以坚果云为代表的高性能企业网盘正以极高的性价比和专业度&#xff0c;解决着企业“数据安全与便捷协作”两大核心痛点。 为了帮助企…...

GKD订阅管理终极指南:如何用3步轻松解决订阅混乱难题

GKD订阅管理终极指南&#xff1a;如何用3步轻松解决订阅混乱难题 【免费下载链接】GKD_THS_List GKD第三方订阅收录名单 项目地址: https://gitcode.com/gh_mirrors/gk/GKD_THS_List 你是不是也遇到过这样的场景&#xff1f;打开GKD应用&#xff0c;面对几十个订阅源却不…...