按java 8中的属性对实体进行分组和求和

时间:2016-09-26 08:24:14

标签: java group-by java-8 java-stream

我试图通过一个对象重新组合一些实体,这里是一个例子,我尝试按typeOfArticle进行分组,同时按价格求和。所以我的问题是如何用java8做到这一点? :

public class Article{
   private Integer id;
   private String name;
   private String prenom;
   private TypeOfArticle typeOfArticle;
   private double price;
   ....    } 

第二课:

public TypeOfArticle{
  private Integer id;
  .......}    

我可以尝试这样做:

  ListOfArticle.stream().collect(
            Collectors.groupingBy(ListOfArticle :: getTypeOfArticle, Collectors.summingInt(ListOfArticle::getPrice)));  

1 个答案:

答案 0 :(得分:0)

这是我的工作方式:

listOfArticle.stream().collect( Collectors.groupingBy(article -> article .getTypeOfArticle().getId(), Collectors.summingInt(article::getPrice)));

其中

List<Article> listOfArticle = new ArrayList<Article>();