本文介绍了带有和的Java 8 List到EnumMap的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下课程:
public class Mark {
private Long id;
private Student student;
private Integer value = 0;
private Subject subject;
}
public enum Subject {
MATH,
CHEMISTRY
}
我必须收到 EnumMap< Subject,Integer>
,其中value是 Mark
中所有值的总和。
列表< Mark>
的示例:
I have to receive EnumMap<Subject, Integer>
, where the value is the sum of all values from the Mark
.
Example of List<Mark>
:
$ b带有该值的$ b
我必须收到以下 EnumMap
:
我认为应该用<$ c $来完成c>收藏家:: groupingBy ,但我无法理解如何获得 EnumMap
及其价值。
I think it should be done with Collectors::groupingBy
, but I can't understand how to get EnumMap
and his value.
推荐答案
markList.stream().collect(
groupingBy(
Mark::getSubject,
() -> new EnumMap<Subject, Integer>(Subject.class),
summingInt(Mark::getValue)));
这篇关于带有和的Java 8 List到EnumMap的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!