3 java functional-programming java-8 java-stream
我有任何ArrayList“监视器”对象。每个对象都有两个字段,“brand::String”和“price::BigDecimal”。我正在使用以下 Stream,将 Monitor 对象分类为一个HashMap<String, List<Monitor>>,key名称在哪里(因此具有相同名称的监视器最终出现在同一个列表中:
Map<String, List<Monitor>> monitorsByNameMap =
monitors.stream()
.collect(Collectors.groupingBy(Monitor::getName));
Run Code Online (Sandbox Code Playgroud)
我想每个List<Monitor>在HashMap要排序基于所述price每一个Monitor对象-优选在按升序排列。我想知道是否可以通过添加上述表达式来实现。
您可以collectingAndThen在分组后使用name
Map<String, List<Monitor>> monitorsByNameMap = monitors.stream()
.collect(Collectors.groupingBy(Monitor::getName,
Collectors.collectingAndThen(Collectors.toList(),
l -> l.stream()
.sorted(Comparator.comparing(Monitor::getPrice))
.collect(Collectors.toList())
))
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
69 次 |
| 最近记录: |