[英]Java 8 List to EnumMap with sums
我有以下課程:
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,主題= MATH)
標記(...,值= 2,主題= MATH)
標記(...,值= 5,主題=化學)
使用該值,我必須收到以下EnumMap
:
數學 - > 3
化學 - > 5
我認為它應該用Collectors::groupingBy
,但我無法理解如何獲得EnumMap
及其價值。
markList.stream().collect(
groupingBy(
Mark::getSubject,
() -> new EnumMap<Subject, Integer>(Subject.class),
summingInt(Mark::getValue)));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.