使用Java 8新增的Predicate操作来操作集合
来源:互联网 发布:卢比奥生涯数据 编辑:程序博客网 时间:2024/06/05 16:38
Java 8为Collection集合新增了一些需要Predicate参数的方法,这些方法可以对集合元素进行过滤。程序可使用Lambda表达式构建Predicate对象。
1 代码示例
import java.util.*;import java.util.function.*;public class PredicateTest2{public static void main(String[] args){// 创建books集合、为books集合添加元素的代码与前一个程序相同。Collection books = new HashSet();books.add(new String("轻量级Java EE企业应用实战"));books.add(new String("疯狂Java讲义"));books.add(new String("疯狂iOS讲义"));books.add(new String("疯狂Ajax讲义"));books.add(new String("疯狂Android讲义"));// 统计书名包含“疯狂”子串的图书数量System.out.println(calAll(books , ele->((String)ele).contains("疯狂")));// 统计书名包含“Java”子串的图书数量System.out.println(calAll(books , ele->((String)ele).contains("Java")));// 统计书名字符串长度大于10的图书数量System.out.println(calAll(books , ele->((String)ele).length() > 10));// 使用Lambda表达式(目标类型是Predicate)过滤集合books.removeIf(ele -> ((String)ele).length() < 10);System.out.println(books);}public static int calAll(Collection books , Predicate p){int total = 0;for (Object obj : books){// 使用Predicate的test()方法判断该对象是否满足Predicate指定的条件if (p.test(obj)){total ++;}}return total;}}
2 运行结果
4
2
2
[疯狂Android讲义, 轻量级Java EE企业应用实战]
3 代码分析
该代码完成了以下4个需求
- 统计书名中出现“疯狂”字符串的图书数量。
- 统计书名中出现“Java”字符串图书数量。
- 统计书名长度大于10的图书数量。
- 删除书名长度小于10的图书。
0 0
- 使用Java 8新增的Predicate操作来操作集合
- 使用Java8新增的Predicate操作集合
- Java新增的Predicate操作集合
- JAVA8 使用谓词(Predicate)操作集合
- [置顶] Java 8新增的Stream操作
- [疯狂Java]集合:Collection的迭代器Iterator、使用Predicate筛选集合中的元素
- java中新增的逻辑操作符"^"
- java常用的集合操作
- java操作xsl新增数据
- 如何使用Java操作LDAP之新增条目(三)
- 谓词的使用(predicate)
- 【java performance】使用移位操作来代替'a / b'操作
- 使用集合操作符
- java io 操作集合
- java io 操作集合
- java集合类操作
- JAVA文件操作集合
- java集合Set操作
- 最好用的float型保留N位小数的方法
- 简单Java类实训三
- 迭代神器-Iterator接口
- 主流应用服务器
- (继承)Problem C: 家教课程
- 使用Java 8新增的Predicate操作来操作集合
- 使用foreach遍历集合元素
- mybatis 插入一条数据返回相应数据ID
- 使用Lambda表达式遍历Iterator
- Java对称加密算法
- Set最常见子类HashSet
- Set集合另一强悍的类LinkedHashSet
- JNI中文手册
- 强大的排序集合类TreeSet