我有以下课程:
public class Mark {
private Long id;
private Student student;
private Integer value = 0;
private Subject subject;
}
public enum Subject {
MATH,
CHEMISTRY
}
我必须收到EnumMap<Subject, Integer>
,其中该值是来自Mark
.
的例子List<Mark>
:
标记(...,值 = 1,主题 = 数学)
标记(...,值 = 2,主题 = 数学)
标记(...,值 = 5,主题 = 化学)
有了这个值我必须收到以下内容EnumMap
:
数学 -> 3
化学 -> 5
我认为应该这样做Collectors::groupingBy
,但我不明白如何获得EnumMap
和他的价值。
markList.stream().collect(
groupingBy(
Mark::getSubject,
() -> new EnumMap<Subject, Integer>(Subject.class),
summingInt(Mark::getValue)));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)