sla*_*omy 2 java algorithm java-8
我有一个看起来像这样的结构:
Map<Long, List<Double>
Run Code Online (Sandbox Code Playgroud)
我想把它转换成
List<Double>
Run Code Online (Sandbox Code Playgroud)
此结果列表中的每个项目表示一个键的值的总和.使用示例Map:
{1: [2.0, 3.0, 4.0],
2: [1.5, 10.0]}
Run Code Online (Sandbox Code Playgroud)
我希望结果如下:
[9.0, 11.5]
Run Code Online (Sandbox Code Playgroud)
要么
[11.5, 9.0]
Run Code Online (Sandbox Code Playgroud)
(顺序无所谓).是否可以使用Java 8 merge()方法?实际上上面的情况有点简化,因为事实上我的List是用一些复杂的类进行参数化的,我想创建这个类的合并对象,但我只想在这里掌握一般的想法.
尝试:
Map<Long, List<Double>> map = // ...
List<Double> sums = map.values()
.stream()
.map(l -> l.stream().mapToDouble(d -> d).sum())
.collect(Collectors.toList())
Run Code Online (Sandbox Code Playgroud)