java lambda 转换_java – 如何将此源代码转换为lambda?

它由列表对象中的地图组成.我尝试通过循环语句比较它们​​来匹配具有相同id的列表.我怎样才能转换为lambda?

List> combineList = new ArrayList<>(); // Temp List

for(Map titleMap : titleList) { // Name List

for(Map codeMap : codeList) { // Age List

if(titleMap.get("ID").equals(codeMap.get("ID"))) { // compare Id

Map tempMap = new HashMap<>();

tempMap.put("ID", titleMap.get("ID"));

tempMap.put("NAME", titleMap.get("NAME"));

tempMap.put("AGE", codeMap.get("AGE"));

combineList.add(tempMap);

}

}

}

最佳答案 你已经以有效的方式做到了.因此,如果您希望您可以更改相同的代码,只需使用stream().forEach,或者如果想要使用流更多,请执行以下操作:

titleList.stream()

.forEach(titleMap ->

combineList.addAll(

codeList.stream()

.filter(codeMap -> titleMap.get("ID").equals(codeMap.get("ID")))

.map(codeMap -> {

Map tempMap = new HashMap<>();

tempMap.put("ID", titleMap.get("ID"));

tempMap.put("NAME", titleMap.get("NAME"));

tempMap.put("ID", codeMap.get("ID"));

tempMap.put("AGE", codeMap.get("AGE"));

return tempMap;

})

.collect(Collectors.toList())

)

);

请注意,您必须每次都从codeList过滤,因为您的条件是这样的.尝试使用类来代替Map以提高效率,清洁和有效.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值