当前位置: 首页 > 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的形式。…...

边缘计算医疗风险自查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// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 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日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...

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年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1&#xff09;下载安装包2&#xff09;配置环境变量3&#xff09;安装镜像4&#xff09;node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1&#xff09;使用 http-server2&#xff09;详解 …...

安卓基础(Java 和 Gradle 版本)

1. 设置项目的 JDK 版本 方法1&#xff1a;通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分&#xff0c;设置 Gradle JDK 方法2&#xff1a;通过 Settings File → Settings... (或 CtrlAltS)…...