lamdba 过滤方法自定义过滤器

本文探讨了在使用Lambda表达式时遇到的问题,重点在于如何使用Lambda进行列表去重操作。注意到过滤后的结果引用了原始列表的内存地址,可能导致意外的数据修改。文章介绍了Predicate接口作为函数式接口在过滤器中的应用,并解析了函数式取值的`.apply`方法以及`map`的`putIfAbsent`方法在去重场景中的作用。
摘要由CSDN通过智能技术生成

标题最近在使用lamdba表达式的时候遇到一个问题

List<Account> dataBaseList=........;
List<Object> result = dataBaseList.stream().filter(obj->{
	//这里通过对对象某些属性的判断通过返回 true fales的方式能过滤数组
	//常用于代替sql一些字段的简单过滤
}) .collect(Collectors.toList());

但是要注意过滤后的result 里面的对象指向的是dataBaseList的内存地址,如果改变result 的值会导致dataBaseList值发生变化,如果再次使用dataBaseList会导致值错误;

再说问题,此处想要实现一个List 去重的方法

贴一下源码
在这里插入图片描述
他的参数Predicate 没有神研究但是能够确定应该参数使用的是这个方法
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值