Bic*_*ick 1 java-8 java-stream
我正在打印一个按键排序的地图,中间对象 LinkedHashMap 如下;
LinkedHashMap<String, AtomicInteger> sortedMap = wcMap.entrySet().stream()
.sorted(Map.Entry.comparingByKey())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
(oldValue, newValue) -> oldValue, LinkedHashMap::new));
sortedMap.forEach((k, v) -> System.out.println(String.format("%s ==>> %d",k, v.get())));
Run Code Online (Sandbox Code Playgroud)
如何在收集之前直接从流中打印它?
如果您对收集的内容不感兴趣LinkedHashMap:
wcMap.entrySet().stream()
.sorted(Map.Entry.comparingByKey())
.forEachOrdered(e -> System.out.println(String.format("%s ==>> %d", e.getKey(), e.getValue().get()));
Run Code Online (Sandbox Code Playgroud)
或者甚至更好:
wcMap.entrySet().stream()
.sorted(Map.Entry.comparingByKey())
.map(e -> String.format("%s ==>> %d", e.getKey(), e.getValue().get()))
.forEachOrdered(System.out::println);
Run Code Online (Sandbox Code Playgroud)
如果您仍然想要结果LinkedHashMap,请使用peek():
wcMap.entrySet().stream()
.sorted(Map.Entry.comparingByKey())
.peek(e -> System.out.println(String.format("%s ==>> %d", e.getKey(), e.getValue().get())))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
(oldValue, newValue) -> oldValue, LinkedHashMap::new));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3034 次 |
| 最近记录: |