Java新增的Predicate操作集合
来源:互联网 发布:iphone7专业拍照软件 编辑:程序博客网 时间:2024/06/01 21:53
Java8为Collection集合新增了一个removelf(Predicate filter)方法,该方法将会批量删除符合filter条件的元素。该方法需要一个Predicate(谓词)对象作为参数,Predicate也是函数式接口,因此可以使用Lambda表达式。
如下程序示范了使用Predicate来过滤集合。
package base1;import java.util.*;import java.util.function.Predicate;public class test { public static void main(String[] args){ Collection books = new HashSet(); books.add("轻量级java EE企业应用实践"); books.add("疯狂java讲义"); books.add("疯狂ios讲义"); books.add("疯狂Ajax讲义"); books.add("疯狂Android讲义"); books.removeIf(ele->((String)ele).length()<10); System.out.println(books); }
上面程序调用了Collection集合的removelf(Predicate filter)方法批量删除集合中符合条件的元素,程序传入了一个lambda表达式作为过滤条件:所有长度小于10的字符串元素都会被删除。编译运行代码,可以看到如下输出:
[轻量级java EE企业应用实践, 疯狂Android讲义]
如下程序示范Predicate简化集合的运算。
package base1;import java.util.*;import java.util.function.Predicate;public class test { public static void main(String[] args){ Collection books = new HashSet(); books.add("轻量级java EE企业应用实践"); books.add("疯狂java讲义"); books.add("疯狂ios讲义"); books.add("疯狂Ajax讲义"); books.add("疯狂Android讲义"); System.out.println(calAll(books,ele->((String)ele).contains("疯狂"))); System.out.println(calAll(books,ele->((String)ele).contains("java"))); System.out.println(calAll(books,ele->((String)ele).length() > 10)); } private static int calAll(Collection books, Predicate p) { // TODO Auto-generated method stub int total = 0; for(Object obj : books){ if(p.test(obj)){ total++; } } return total; }}
运行结果:
422
该程序有如下三个统计需求:
- 统计书名中出现”疯狂”字符串的图书数量;
- 统计书名中出现”java”字符串的图书数量;
- 统计书名长度大于10的图书数量。
阅读全文
0 0
- Java新增的Predicate操作集合
- 使用Java 8新增的Predicate操作来操作集合
- 使用Java8新增的Predicate操作集合
- JAVA8 使用谓词(Predicate)操作集合
- [疯狂Java]集合:Collection的迭代器Iterator、使用Predicate筛选集合中的元素
- java中新增的逻辑操作符"^"
- [置顶] Java 8新增的Stream操作
- java常用的集合操作
- java操作xsl新增数据
- javascript集合的交,并,补,子集,长度,新增,删除,清空等操作
- java集合(包括java8新增知识)
- Predicate的用法
- 谓词的使用(predicate)
- Guava的新增集合类型的例子
- Mandarax的判断某Object是否在某集合中的Predicate
- Java8中新增加的集合类
- Java8中新增加的集合类
- Java8中新增加的集合类
- 数据结构和算法 —— 绪论
- spring mvc 配置web.xml时“/”和“/*”的区别
- POJ
- ArrayDeque
- sch find similar objects
- Java新增的Predicate操作集合
- hdu 1338 Game Prediction
- 循环双链表--JAVA
- No CurrentSessionContext configured!
- MongoDB集群实战攻略
- A
- union 共用体 测大端小端
- Redis集群学习中的遇到的坑
- react-navigation NestingNavigators Demo