stream 转成 LinkedHashMap
时间: 2024-03-01 09:46:55 浏览: 227
Java8 Stream Collectors收集器使用方法解析
可以使用Java的Stream流将Map转换为LinkedHashMap。下面是一个示例代码:
```java
import java.util.*;
import java.util.stream.*;
public class StreamToLinkedHashMapExample {
public static void main(String[] args) {
// 创建一个未排序的HashMap
Map<String, Integer> unsortedMap = new HashMap<>();
unsortedMap.put("a", 1);
unsortedMap.put("b", 2);
unsortedMap.put("c", 3);
// 使用Stream流将Map转换为LinkedHashMap并按值进行排序
LinkedHashMap<String, Integer> sortedMap = unsortedMap.entrySet().stream()
.sorted(Map.Entry.comparingByValue())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
(oldValue, newValue) -> oldValue, LinkedHashMap::new));
// 输出排序后的LinkedHashMap
System.out.println(sortedMap);
}
}
```
这段代码首先创建了一个未排序的HashMap,然后使用Stream流对其进行排序并转换为LinkedHashMap。在Stream流中,我们使用`sorted()`方法按值进行排序,然后使用`collect()`方法将排序后的结果收集到LinkedHashMap中。
运行以上代码,输出将会是一个按值排序的LinkedHashMap:
```
{a=1, b=2, c=3}
```
阅读全文