如何在Java8流api中将列表列表展平为新的对象列表

d7v8vwbk  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(428)

关闭。这个问题需要更加突出重点。它目前不接受答案。
**想改进这个问题吗?**通过编辑这篇文章更新这个问题,使它只关注一个问题。

上个月关门了。
改进这个问题
是否可以使用Java8流api将列表列表展平为新的对象列表。

Public Class Currency {
     String companyId;
     List<CurrencyValue> currencyValues;
     }

   Public Class CurrencyValue {
      String currencyCode;
      Date currencyDate;
      Bigdecimal CurrencyValue;
   }

     public Class MemberCurrency {
       String company_id;
       String currencyCode;
       Date currencyDate;
       Bigdecimal CurrencyValue;

      }

我有一个 List<Currency> 其中每种货币都有一个currencyValue列表,我想从中创建一个新的 List<MemberCurrency>

mgdq6dx1

mgdq6dx11#

根据您的模型,您将需要平面Map货币列表以获得您的货币值,但首先,Map货币值以创建成员货币,如下所示:

currencies.stream()
                .flatMap(c -> c.currencyValues.stream()
                        .map(cv -> new MemberCurrency(
                                c.companyId, cv.currencyCode, cv.currencyDate, cv.currencyValue)))
                .collect(Collectors.toList());

我建议的另一件事是,除了必须添加到membercurrency类中的参数化构造函数之外,还要向字段和相应的getter和setters添加访问修饰符。

public MemberCurrency(String company_id, String currencyCode, Date currencyDate, BigDecimal currencyValue) {
            this.company_id = company_id;
            this.currencyCode = currencyCode;
            this.currencyDate = currencyDate;
            this.currencyValue = currencyValue;
        }

相关问题