gpt4 book ai didi

java - 使用 Java Stream API 以声明方式重写创建和填充 Map 的命令式代码

转载 作者:行者123 更新时间:2023-12-05 09:02:01 27 4
gpt4 key购买 nike

我有这段代码:

Map<String, BillingAccount> billingAccountsMap = new HashMap<>();
for (BillingAccount ba : billingAccounts) {
if (ba.getBillingAccountIdentifier() != null && ba.getBillingAccountIdentifier().getIdentifier() != null) {
billingAccountsMap.put(ba.getBillingAccountIdentifier().getIdentifier(), ba);
}
}

我只想用 Java Stream API 和 collect(Collectors.toMap()) 以函数式方式重写它,但我对 null 有点困惑> 案例。

我正在使用 Java 11。

最佳答案

使用 Collectors.toMap(..) 将项目流转换为 map ,并使用 filter() 删除不需要的项目。在你的情况下:

var billingAccountsMap = billingAccounts.stream()
.filter(ba -> ba.getBillingAccountIdentifier() != null)
.filter(ba -> ba.getBillingAccountIdentifier().getIdentifier() != null)
.collect(Collectors.toMap(ba -> ba.getBillingAccountIdentifier().getIdentifier(), ba -> ba));

查看此 answer了解更多信息。

关于java - 使用 Java Stream API 以声明方式重写创建和填充 Map 的命令式代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72230146/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com