使用Java 8新增的Predicate操作来操作集合
2016-09-05 21:34
330 查看
Java 8为Collection集合新增了一些需要Predicate参数的方法,这些方法可以对集合元素进行过滤。程序可使用Lambda表达式构建Predicate对象。
1 代码示例
2 运行结果
4
2
2
[疯狂Android讲义, 轻量级Java EE企业应用实战]
3 代码分析
该代码完成了以下4个需求
统计书名中出现“疯狂”字符串的图书数量。
统计书名中出现“Java”字符串图书数量。
统计书名长度大于10的图书数量。
删除书名长度小于10的图书。
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的图书。
相关文章推荐
- 使用Java8新增的Predicate操作集合
- Java新增的Predicate操作集合
- java使用lambda表达式对List集合进行操作(JDK1.8)
- java8新特性Predicate和Stream操作集合
- [疯狂Java]集合:Collection的迭代器Iterator、使用Predicate筛选集合中的元素
- Java_集合操作_使用细节
- java使用lambda表达式对List集合进行操作(JDK1.8)
- Java1.8新特性关于lambda表达式与Stream流的使用以及对集合的实用操作
- java 并发操作list集合导致java.util.ConcurrentModificationException 使用迭代器
- java使用lambda表达式对List集合进行操作(JDK1.8)
- Java_集合操作_非稳定排序推荐使用List
- Java_集合操作_集合运算时使用更优雅的方式
- 如何使用Java操作LDAP之新增条目(三)
- java使用lambda表达式对List集合进行操作技巧(JDK1.8)
- java io 操作集合
- 使用Java操作二进制文件 示例
- Java中使用JCOM操作Office对象
- java 实现将传入的两个集合进行并,交,联集,差操作
- JAVA中几种常见集合的使用实例
- java io 操作集合