Ale*_*191 13 java grouping java-8 java-stream collectors
我目前正在创建一个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>>
?
要将其Integer
从Collectors.summingInt
a 更改为a Duration
,您只需将其替换Collector
为:
Collectors.collectingAndThen(
Collectors.summingInt(t -> t.getDuration().toSecondOfDay()),
Duration::ofSeconds
)
Run Code Online (Sandbox Code Playgroud)