type
status
date
slug
summary
tags
category
icon
password
Property
May 25, 2023 01:58 AM
本文主要介绍在处理List集合数据中复杂对象的时候,如何巧用Lambda进行解构过滤

巧用Lambda

提到Lambda想必Javaer都不会陌生,自JDK8开始,Lambda就开始流行了起来,与其相关的一系列官方的API诸如Stream流等也在越来越多的开源项目中常见到。
函数式接口,Lambda这个东西我们熟悉都应该熟悉,它的应用场景也有很多。
只是我们在用的时候,如果经验不够,可能不会特定想到用这个方式去解决实际的问题。
举个例子:一个从DB中IO的Data,假定这个data是一个集合对象,子项是一个属性繁多的复杂对象,需要根据这个对象某个属性进行过滤操作,如果对Lambda不够了解或者说不够熟悉的时候,可能司空见惯的就是对着集合一把梭,拿着就直接循环if判断过滤,如以下代码:
这样的代码不仅在形式上不美观,而且在反应你解决问题的思维程度上,拉低了你的格局。
那怎么操作呢?更优雅一点的方式就是通过Lambda来解决:
接下来以实际操作为例,设有一个需求,需要将业务流程最终的数据进行清洗过滤,依照集合子项的某一属性进行过滤,而子项是一个复杂对象。这时候应该首选Lambda进行操作,以下是代码过程:

编写函数式接口方法

编写Function参数,并设定Predicate<T>返回对象,通过cacheMap来做核心去重操作,用于在Map中插入一个键值对,但只有在该键不存在时才会生效:

紧接着实现核心代码

完整的测试代码如下

测试结果如下

notion image
 
LeetCode刷题日记(一):从二分法看透算法优化本质JUC技术篇(一):Java并发编程的知识体系
fntp
fntp
多一点兴趣,少一点功利
公告
type
status
date
slug
summary
tags
category
icon
password
Property
Sep 5, 2023 06:04 AM
📝 博客只为了记录我的学习生涯
😎 我的学习目标是成为一名极客
🤖 我热爱开源当然我也拥抱开源
💌 我期待能收到你的Email留言
📧 我的邮箱:stickpoint@163.com
欢迎交流~