博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
笔记笔记笔记
阅读量:38356 次
发布时间:2022-02-11

本文共 2226 字,大约阅读时间需要 7 分钟。

Map集合的遍历方式

Map集合的遍历方式有3种:

方式一:键找值的方式遍历:先获取Map集合全部的键,再根据遍历键找值。

方式二:键值对的方式遍历,把“键值对“看成一个整体,难度较大。

方式三:JDK 1.8开始之后的新技术:Lambda表达式。

Map集合的遍历方式一: 键找值

先通过keySet方法, 获取Map集合的全部键的Set集合。

遍历键的Set集合,然后通过键提取对应值。

键找值涉及到的API:

方法名称说明

keySet()获取所有键的集合

get(Object key)根据键获取值

演示代码:

public static void main(String[] args) {

Map<String, Integer> maps = new HashMap<>();

maps.put("华为", 10);

maps.put("小米", 5);

maps.put("iPhone", 6);

maps.put("生活用品", 15);

maps.put("java", 20);

maps.put("python", 17);

// 拿到全部集合的全部键

Set<String> keys = maps.keySet();

// 遍历键, 根据键获取值

for (String key: keys) {

int value = maps.get(key);

System.out.println(key + "--->" +value);

}

}

Map集合的遍历方式二: 键值对

先通过entrySet方法把Map集合转换成Set集合,Set集合中每个元素都是键值对实体类型了(将键和值看成一个整体)。

遍历获取到的Set集合,然后通过getKey提取键, 以及getValue提取值。

键值对设计到的API:

方法名称说明

Set<Map.Entry<K,V>> entrySet()获取所有键值对对象的集合

getKey()获得键

getValue()获取值

演示代码:

public static void main(String[] args) {

Map<String, Integer> maps = new HashMap<>();

maps.put("华为", 10);

maps.put("小米", 5);

maps.put("iPhone", 6);

maps.put("生活用品", 15);

maps.put("java", 20);

maps.put("python", 17);

// 把Map集合转成Set集合

Set<Map.Entry<String, Integer>> newMaps = maps.entrySet();

// 遍历转成的Set集合

for (Map.Entry<String, Integer> newMap : newMaps) {

String key = newMap.getKey(); // 获取key

Integer value = newMap.getValue(); // 获取value

System.out.println(key + "--->" + value);

}

}

Map集合的遍历方式三: Lambda

得益于JDK 8开始的新技术Lambda表达式,提供了一种更简单、更直接的遍历集合的方式。

Map结合Lambda遍历的API:

方法名称说明

forEach(BiConsumer<? super K, ? super V> action)结合lambda遍历Map集合

演示代码:

public static void main(String[] args) {

Map<String, Integer> maps = new HashMap<>();

maps.put("华为", 10);

maps.put("小米", 5);

maps.put("iPhone", 6);

maps.put("生活用品", 15);

maps.put("java", 20);

maps.put("python", 17);

// 使用forEach方法遍历对象

maps.forEach(new BiConsumer<String, Integer>() {

@Override

public void accept(String key, Integer value) {

System.out.println(key + "--->" + value);

}

});

}

结合Lambda简化代码

public static void main(String[] args) {

Map<String, Integer> maps = new HashMap<>();

maps.put("华为", 10);

maps.put("小米", 5);

maps.put("iPhone", 6);

maps.put("生活用品", 15);

maps.put("java", 20);

maps.put("python", 17);

// 使用forEach方法集合Lambda表达式遍历对象

maps.forEach((key, value) -> System.out.println(key + "--->" + value));

}

转载地址:http://xkwduy.baihongyu.com/

你可能感兴趣的文章
【一次认识一个市场技术指标】之KDJ(随机指标)
查看>>
一文读懂量化系统接入及相关平台
查看>>
【vn.py】 策略实盘自动交易
查看>>
剑指数据结构-从上到下打印二叉树
查看>>
字由安装教程【附安装包】
查看>>
溜云库(3d66溜溜模型软件) 安装教程【附安装包】
查看>>
7-zip安装教程【附安装包】
查看>>
outlook邮箱安装教程【附安装包】
查看>>
[转]Spring Boot + Mybatis多数据源和动态数据源配置
查看>>
wordpress更新主题插件需要提供ftp信息
查看>>
Django Xadmin中关联数据的显示方式配置
查看>>
超详细的大数据学习资源大全!
查看>>
京东举办首届大数据峰会 打造智能零售大数据“操作系统”
查看>>
年薪50W的Java程序员转大数据学习路线
查看>>
学习笔记 | 核主成分分析(KPCA)及其若干应用
查看>>
SLAM学习 | Ubuntu16.04 下从零开始配置环境并运行ORB-SLAM2(TUM, ROS+USB, 自制数据集)
查看>>
SLAM学习 | 单目相机标定(附代码实测可用)
查看>>
SLAM学习 | 对ORB-SLAM2运行结果KeyFrameTrajectory.txt内容的说明
查看>>
MNIST | 基于朴素贝叶斯分类器的0-9数字手写体识别
查看>>
MNIST | 基于k-means和KNN的0-9数字手写体识别
查看>>