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中插入一个键值对,但只有在该键不存在时才会生效:紧接着实现核心代码
完整的测试代码如下
测试结果如下
- 作者:fntp
- 链接:https://polofox.com/article/jdk-api-lamda-1
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章