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的常见使用案例和具体代码实现: Map的遍历 Map<String, Integer> map new HashMap<>(); map.put(“apple”, 10); map.put(“banana”, 20); map.put(“orange”, 30); // 遍历方式一:使用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年提出 测试结果为: 通过运行结果可以发现, 在眼疾筛查数据集iChallenge-PM上使用AlexNet,loss能有效下降, 经过5个epoch的训练,在验证集上的准确率可以达到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 提示: 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原理+配置
目录 一, 以太网二层交换机 二,三层架构: 三,VLAN配置思路 1.创建vlan 2.接口划入vlan 3.trunk干道 4.vlan间路由器 5.DHCP池塘配置 四,华为VLAN部分的接口模式讲解: 五,华为VLAN部分的…...
MongoDB文档-基础使用-在客户端(dos窗口)/可视化工具中使用MongoDB基础语句
阿丹: 本文章将描述以及研究mongodb在客户端的基础应用以及在spring-boot中整合使用mongodb来完成基本的数据增删改查。 先放官方的文章 MongoDB CRUD操作 - MongoDB-CN-Manual 本文章分为: 在客户端(dos窗口)/可视化工具中使用…...
“RISC-V成长日记” blog发布,第一个运行在RISC-V服务器上的blog?
尽管推特、公众号、微博、抖音等社交平台风靡一时,但blog(博客)在全世界依然经久不衰,尤其是在技术领域。对于博主而言,博客是他们独立创作的天地,可以随时更新内容和故事,确保素材的时效性。此…...
gitlab配置webhook
一.前言 当需要做jenkins的自动化触发构建时,就需要配置gitlab的webhook功能,以下来展示以下如何配置gitlab的webhook,jenkins的配置就不在这里展示了,可以去看我devops文章的完整配置 二.配置 在新版本的gitlab中,…...
编译安装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数字证书
很多注重隐私的网站都注重网站信息的安全,比如购物网站就需要对客户的账户信息以及支付信息进行安全保护,否则信息泄露,客户与网站都有损失,网站也会因此流失大量客户。而网站使用https证书为客户端与服务器之间传输的信息加了一个…...
第125天:内网安全-隧道技术SMBICMP正反向连接防火墙出入规则上线
知识点 #知识点: 1、入站规则不出网上线方案 2、出站规则不出网上线方案 3、规则-隧道技术-SMB&ICMP-隧道技术:解决不出网协议上线的问题(利用出网协议进行封装出网) -代理技术:解决网络通讯不通的问题࿰…...
性能测试怎么做?测试工具怎么选择?
在当前软件测试行业,熟练掌握性能测试已经是测试工程师们面试的敲门砖了,当然还有很多测试朋友们每天的工作更多的是点点点,性能方面可能也只是做过简单的并发测试,对于编写脚本,搭建环境方面也比较陌生。今天这篇文章…...
【Eclise配置Jdk环境】Jre环境常见配置错误问题
1、问题描述:执行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范围内,支持灵活可设的数据包格式,支持自动应答和自动重发功能,支持跳频操作,支持FEC功能,同…...
IDEA基础使用
IDEA基础使用 1、IDEA中显示用法和用户截图展示有调用显示无调用显示 对应方法 2、如何找出项目中所有不被调用方法截图展示对应方法 3、常用代码(Code)说明及快捷键:4、未完待续待日后更新。。。总结:欢迎指导,也祝码友们代码越来越棒,技术越…...
[数据集][目标检测]遛狗不牵绳数据集VOC格式-1980张
数据集格式:Pascal VOC格式(不包含分割路径的txt文件和yolo格式的txt文件,仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数):1980 标注数量(xml文件个数):1980 标注类别数:5 标注类别名称:["dog","p…...
基于WebRTC升级的低延时直播
快直播-基于WebRTC升级的低延时直播-腾讯云开发者社区-腾讯云 标准WebRTC支持的音视频编码格式已经无法满足国内直播行业需求。标准WebRTC支持的视频编码格式是VP8/VP9和H.264,音频编码格式是Opus,而国内推流的音视频格式基本上是H.264/H.265AAC的形式。…...
边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...
RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发,后来由Pivotal Software Inc.(现为VMware子公司)接管。RabbitMQ 是一个开源的消息代理和队列服务器,用 Erlang 语言编写。广泛应用于各种分布…...
Python 实现 Web 静态服务器(HTTP 协议)
目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...
