我目前正在创建一个Map<String, Map<LocalDate, Integer>>这样的Integer代表秒:
Map<String, Map<LocalDate, Integer>> map = stream.collect(Collectors.groupingBy(
x -> x.getProject(),
Collectors.groupingBy(
x -> x.getDate(),
Collectors.summingInt(t -> t.getDuration().toSecondOfDay())
)
));
Run Code Online (Sandbox Code Playgroud)
我怎么能创建一个Map<String, Map<LocalDate, Duration>>?
我是java和lambda的新手,我想在地图的地图中找到值的总和和平均值.
我的目标就像 Map<String, Map<String, Double>> browserData;
数据具有格式
<Chrome, <UK, 2.90>>
<Chrome, <US, 5.20>>
<Chrome, <EU, -0.25>>
<IE, <UK, 0.1>>
<IE, <US, -.20>>
<IE, <EU, 0.00>>
<FF, <UK, 0.90>>
<FF, <US, 1.20>>
<FF, <EU, 1.25>>
Run Code Online (Sandbox Code Playgroud)
最终结果需要是两张地图,1表示总和,另一张表示平均值
map1 = <CountryName, SumValue>
map2 = <CountryName, AverageValue>
Run Code Online (Sandbox Code Playgroud)
所以上面例子的结果就是这样
map1 = <UK, 3.9>
<US, 6.2>
<EU, 1>
map2 = <UK, 1.3>
<US, 2.07>
<EU, 0.33>
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?