Java 8如何通过枚举类型合并多个列表

问题描述

如何在Java 8中按枚举类型合并多个列表?

我有2个列表:

List<StatusSummary> listA //4 items because we have 4 enum types
List<StatusSummary> listB //4 items because we have 4 enum types

class StatusSummary {
  private StatusEnum resourcesStatus; //4 statuses: TypeA,TypeB,TypeC,TypeD
  private Integer count;
}

我希望有一个列表,其中每个resourcesStatus: TypeA,TypeD包含4个项目,而count字段中的元素总和如下:

List<StatusSummary> listA+B with 4 objects:
(resourcesStatus: TypeA,count: 3),(resourcesStatus: TypeB,count:99),(resourcesStatus: typeC,count:322),(resourcesStatus: TypeD,count:2)

到目前为止,我已经实现了这样的东西:

listA
    .getResourcesStatus()
    .forEach(la -> listB.getResourcesStatus().stream()
        .filter(lb -> lb.getResourcesStatus() == la.getResourcesStatus())
        .forEach(lb -> result.add(new StatusSummary()
            .count(la.getCount() + lb.getCount())
        .status(la.getStatus()))));

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)