簡體   English   中英

帶有和的Java 8 List到EnumMap

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM