Java 使用stream流根据Map的key对map进行排序
时间: 2023-05-12 21:07:17 浏览: 1157
可以使用以下代码对Map按照key进行排序:
Map<String, Integer> map = new HashMap<>();
// 添加元素到map中
Map<String, Integer> sortedMap = map.entrySet()
.stream()
.sorted(Map.Entry.comparingByKey())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
(oldValue, newValue) -> oldValue, LinkedHashMap::new));
相关问题
stream流对map的key排序
在Java 8中,可以使用Stream API对Map的key进行排序。具体实现可以使用Map.entrySet()方法获取Map中的所有键值对,然后使用Stream.sorted()方法对键值对进行排序,最后使用Collectors.toMap()方法将排序后的键值对重新放入一个新的Map中。
示例代码如下:
```
Map<String, Integer> map = new HashMap<>();
map.put("c", 3);
map.put("a", 1);
map.put("b", 2);
Map<String, Integer> sortedMap = map.entrySet().stream()
.sorted(Map.Entry.comparingByKey())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
(oldValue, newValue) -> oldValue, LinkedHashMap::new));
System.out.println(sortedMap);
```
输出结果为:{a=1, b=2, c=3}
使用stream流对map中的元素进行排序
可以使用Java 8中的Stream API和Comparator接口对Map中的元素进行排序。下面是一个例子:
假设有一个Map<String, Integer> map,我们要根据value对它进行排序:
```
Map<String, Integer> sortedMap = map.entrySet()
.stream()
.sorted(Map.Entry.comparingByValue())
.collect(Collectors.toMap(
Map.Entry::getKey,
Map.Entry::getValue,
(oldValue, newValue) -> oldValue,
LinkedHashMap::new));
```
这里通过entrySet()方法获取Map中的键值对集合,并使用sorted()方法按照value值进行排序。最后使用collect()方法将排序后的键值对重新放入一个LinkedHashMap中,保持排序顺序。
如果要按照key进行排序,只需要将comparingByValue()方法替换成comparingByKey()即可。
阅读全文