Java8 Stream 操作 Map 根据 Key 或 Value 排序的实现 Java8 中的 Stream 操作为开发者提供了简洁高效的数据处理方式,今天我们将介绍如何使用 Java8 Stream 操作 Map 根据 Key 或 Value 排序的实现。 Map 根据 Value 排序 在 Java8 中,我们可以使用 Stream 操作对 Map 根据 Value 排序。下面是一个示例代码: ```java Map<String, BigDecimal> map = new HashMap<>(); map.put("one", 0.08); map.put("two", 0.1); map.put("three", 0.2); map.put("four", 0.91); public <K, V extends Comparable<? super V>> Map<K, V> sortByValue(Map<K, V> map) { Map<K, V> result = new LinkedHashMap<>(); map.entrySet().stream() .sorted(Map.Entry.<K, V>comparingByValue().reversed()) .forEachOrdered(e -> result.put(e.getKey(), e.getValue())); return result; } ``` 在上面的代码中,我们使用 `Map.Entry.<K, V>comparingByValue()` 对 Map 的 Entry 集合进行排序,并使用 `reversed()` 方法将排序结果反转,以实现降序排序。 Map 根据 Key 排序 如果我们想根据 Map 的 Key 排序,只需要将上面的工具类进行小小的修改: ```java public <K extends Comparable<? super K>, V > Map<K, V> sortByKey(Map<K, V> map) { Map<K, V> result = new LinkedHashMap<>(); map.entrySet().stream() .sorted(Map.Entry.<K, V>comparingByKey() .reversed()) .forEachOrdered(e -> result.put(e.getKey(), e.getValue())); return result; } ``` 在上面的代码中,我们使用 `Map.Entry.<K, V>comparingByKey()` 对 Map 的 Key 进行排序,并使用 `reversed()` 方法将排序结果反转,以实现降序排序。 升序排序 如果我们需要实现升序排序,只需要将 `reversed()` 方法去掉即可: ```java public <K, V extends Comparable<? super V>> Map<K, V> sortByValue(Map<K, V> map) { Map<K, V> result = new LinkedHashMap<>(); map.entrySet().stream() .sorted(Map.Entry.<K, V>comparingByValue()) .forEachOrdered(e -> result.put(e.getKey(), e.getValue())); return result; } ``` 小结 Java8 中的 Stream 操作提供了一些非常简便的写法,我们还是需要多用一些。今天我们介绍了如何使用 Java8 Stream 操作 Map 根据 Key 或 Value 排序的实现,希望能够对读者有些帮助,也希望大家多多支持我们。
- 粉丝: 6
- 资源: 948
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 高质量C++ C编程指南
- 微信机器人底层框架,兼容Gemini ChatGPT、ChatGLM、科大讯飞Spark、Tigerbot等大机型 微信机器
- nginx-1.27.1源码包
- GEE教程(Map/Reduce 的并行编程概念).ipynb
- springboot网吧管理系统.zip
- 点云分割-基于Pytorch实现的pointnet2点云分割算法-附详细中文注释.zip
- GEE地球引擎基础练习.ipynb
- PHD37N06LT-VB一款N-Channel沟道TO252的MOSFET晶体管参数介绍与应用说明
- C++实打实大师大撒大声地
- Typora是一款优秀的Markdown编辑器.docx