如何从列表<CustomerDetails>映射值并将其分配给列表<Customer>

问题描述 投票:0回答:1

我有 2 个课程“客户”和“客户详细信息”。

Class Customer{
private String ssn;
}

Class CustomerDetails{
private String name;
private String appid;
}

还有一个

Map<String,String> appIdtoSsnMap
,它保存 ssn 与 appId 的映射。

假设我有一个

List<CustomerDetails>
List<Customers>
。如何从 CustomerDetails 中提取 appId,在
appIdtoSsnMap
中查找以获取 ssn 并将其设置回 Customers 的
ssn
字段。

java arraylist java-stream
1个回答
0
投票

我猜你想要这样的东西,你可以根据你的文件替换你的getter方法。

if (customersList != null && customerDetailsList != null && appIdtoSsnMap != null) {
            for (CustomerDetails customerDetails : customerDetailsList) {
                String appId = customerDetails.getAppId();
                String ssn = appIdtoSsnMap.get(appId);

                if (ssn != null) {
                    customersList.stream()
                            .filter(customer -> ssn.equals(customer.getSsn()))
                            .findFirst()
                            .ifPresent(customer -> customer.setSsn(ssn));
                }
            }
        }
© www.soinside.com 2019 - 2024. All rights reserved.