相关疑难解决方法(0)

使用Collectors.summingInt时如何获取自定义类型而不是Integer?

我目前正在创建一个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 grouping java-8 java-stream collectors

13
推荐指数
1
解决办法
240
查看次数

使用Java 8中的Lambda迭代地图?

我是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)

我怎样才能做到这一点?

java lambda dictionary java-8

8
推荐指数
1
解决办法
3574
查看次数

标签 统计

java ×2

java-8 ×2

collectors ×1

dictionary ×1

grouping ×1

java-stream ×1

lambda ×1