当前位置:  开发笔记 > 编程语言 > 正文

带有和的Java 8 List到EnumMap

如何解决《带有和的Java8List到EnumMap》经验,为你挑选了1个好方法。

我有以下课程:

public class Mark {

    private Long id;

    private Student student;

    private Integer value = 0;

    private Subject subject;

}

public enum Subject {

    MATH,
    CHEMISTRY

}

我必须收到EnumMap,其中值是来自的所有值的总和Mark.
示例List:

Mark(...,value = 1,subject = MATH)
Mark(...,value = 2,subject = MATH)
Mark(...,value = 5,subject = CHEMISTRY)

有了这个价值,我必须收到以下内容EnumMap:

数学 - > 3
化学 - > 5

我认为应该这样做Collectors::groupingBy,但我无法理解如何获得EnumMap和他的价值.



1> Louis Wasser..:
 markList.stream().collect(
     groupingBy(
         Mark::getSubject,
         () -> new EnumMap(Subject.class),
         summingInt(Mark::getValue)));


如果将结果赋值给`Map `变量,或者在具有相似目标类型的任何上下文中使用它,则可以简化`() - > new EnumMap (Subject.class) `到`() - >新的EnumMap <>(Subject.class)`...
推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有