java~lambda表达式让查询更优雅
2018-06-18 01:50:27来源:未知 阅读 ()
在java之前的版本里,如果希望从集合时查找符合条件的数据,如果先遍历他,这种写法是我们不能接受的,所以现在java有了lambda就很好的解决了这个问题,让代码更优雅一些!
/** * lambda filter. * @param list * @param predicate * @return */ public List<User> conditionFilter(List<User> list, Predicate<User> predicate){ return list.stream().filter(predicate).collect(Collectors.toList()); }
上面的方法里有个predicate委托,他类似C++里的函数指针,和C#里的委托类似,他允许外面将一个表达式传进来,与现有代码很好的结偶了!
/** * find list. */ public void findList() { List<User> list = new ArrayList<>(); list.add(new User("zzl")); list.add(new User("abc")); list.add(new User("bca")); list = conditionFilter(list, exe -> exe.getName() == "zzl"); for (User user : list ) { System.out.println(user.getName()); } }
上面代码在集合里查找了名字为zzl的记录!
下面让委托实现了不等于的查找!
/** * lambda filter not. * * @param subjects * @param predicate * @return */ private List<User> conditionFilterNot(List<User> subjects, Predicate<User> predicate) { return subjects.stream().filter(predicate.negate()).collect(Collectors.toList()); }
事实上,java里的Predicate接口还有很多用法,想and,or也有支持!
参考资料:
http://ifeve.com/predicate-and-consumer-interface-in-java-util-function-package-in-java-8/
https://docs.oracle.com/javase/8/docs/api/java/util/function/Predicate.html
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:JUC——JUC开发简介(一)
下一篇:Javap -c 字节码解析
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash