java8 stream 操作map根据key或者value排序的实现
文件大小: 44k
源码售价: 10 个金币 积分规则     积分充值
资源说明:Java8 Stream 操作 Map 根据 Key 或 Value 排序的实现 Java8 中的 Stream 操作为开发者提供了简洁高效的数据处理方式,今天我们将介绍如何使用 Java8 Stream 操作 Map 根据 Key 或 Value 排序的实现。 Map 根据 Value 排序 在 Java8 中,我们可以使用 Stream 操作对 Map 根据 Value 排序。下面是一个示例代码: ```java Map map = new HashMap<>(); map.put("one", 0.08); map.put("two", 0.1); map.put("three", 0.2); map.put("four", 0.91); public > Map sortByValue(Map map) { Map result = new LinkedHashMap<>(); map.entrySet().stream() .sorted(Map.Entry.comparingByValue().reversed()) .forEachOrdered(e -> result.put(e.getKey(), e.getValue())); return result; } ``` 在上面的代码中,我们使用 `Map.Entry.comparingByValue()` 对 Map 的 Entry 集合进行排序,并使用 `reversed()` 方法将排序结果反转,以实现降序排序。 Map 根据 Key 排序 如果我们想根据 Map 的 Key 排序,只需要将上面的工具类进行小小的修改: ```java public , V > Map sortByKey(Map map) { Map result = new LinkedHashMap<>(); map.entrySet().stream() .sorted(Map.Entry.comparingByKey() .reversed()) .forEachOrdered(e -> result.put(e.getKey(), e.getValue())); return result; } ``` 在上面的代码中,我们使用 `Map.Entry.comparingByKey()` 对 Map 的 Key 进行排序,并使用 `reversed()` 方法将排序结果反转,以实现降序排序。 升序排序 如果我们需要实现升序排序,只需要将 `reversed()` 方法去掉即可: ```java public > Map sortByValue(Map map) { Map result = new LinkedHashMap<>(); map.entrySet().stream() .sorted(Map.Entry.comparingByValue()) .forEachOrdered(e -> result.put(e.getKey(), e.getValue())); return result; } ``` 小结 Java8 中的 Stream 操作提供了一些非常简便的写法,我们还是需要多用一些。今天我们介绍了如何使用 Java8 Stream 操作 Map 根据 Key 或 Value 排序的实现,希望能够对读者有些帮助,也希望大家多多支持我们。
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。