当前位置: 首页 > 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中一些常见的操作及其代码示例,掌握这些操作可以帮助我们更好地处理键值对数据,并提高程序的效率和可读性。

http://www.lryc.cn/news/109129.html

相关文章:

  • 计算机视觉实验:图像处理综合-路沿检测
  • Linux环境下VS code的python与C++调试环境的安装
  • AlexNet卷积神经网络-笔记
  • 剑指 Offer 53 - I. !!在排序数组中查找数字 I (考查二分法)
  • RANSAC算法在Python中的实现与应用探索:线性拟合与平面拟合示例
  • PHP接口自动化测试框架实现
  • VLAN原理+配置
  • MongoDB文档-基础使用-在客户端(dos窗口)/可视化工具中使用MongoDB基础语句
  • “RISC-V成长日记” blog发布,第一个运行在RISC-V服务器上的blog?
  • gitlab配置webhook
  • 编译安装Linux内核实践与踩坑
  • 郑州https数字证书
  • 第125天:内网安全-隧道技术SMBICMP正反向连接防火墙出入规则上线
  • 性能测试怎么做?测试工具怎么选择?
  • 【Eclise配置Jdk环境】Jre环境常见配置错误问题
  • UM2080F32——32位SoC芯片
  • IDEA基础使用
  • [数据集][目标检测]遛狗不牵绳数据集VOC格式-1980张
  • 基于WebRTC升级的低延时直播
  • 数学知识(二)
  • Java实现数据库表中的七种连接【Mysql】
  • 452. 用最少数量的箭引爆气球
  • HTML <rp> 标签
  • 常见的设计模式(超详细)
  • Excel 超牛的格式调整汇总——你还在担心你做出来的表不好看吗
  • hyperf 十二、自动化测试
  • dblink简单使用
  • Typescript 第十一章 与JavaScript互操作(外参变量声明,外参类型声明,外参模块声明)
  • 从0到1框架搭建,Python+Pytest+Allure+Git+Jenkins接口自动化框架(超细整理)
  • 在windows配置redis的一些错误及解决方案