java集合(3)-Java8新增的Predicate操作集合

Java8起为Collection集合新增了一个removeIf(Predicate filter)方法,该方法将批量删除符合filter条件的所有元素.该方法需要一个Predicate(谓词)对象作为参数,Predicate也是函数式接口,因此可以使用Lambda表达式作为参数.



package com.j1803.collectionOfIterator;
import java.util.Collection;
import java.util.HashSet;
public class IteratorTest {
    public static void main(String[] args) {
        //创建集合books
        Collection books=new HashSet();
        books.add("PHP");
        books.add("C++");
        books.add("C");
        books.add("Java");
        books.add("Python");
        System.out.println(books);
        //使用Lambda表达式(目标类型是Predicate)过滤集合
        books.removeIf(ele->((String)ele).length()<=3);
        System.out.println(books);

    }
}

调用集合Collection的removeIf()方法批量删除符合条件的元素,程序传入一个Lambda表达式作为过滤条件:所有长度小于等于3的字符串元素都会被删除.运行结果为:

[Java, C++, C, PHP, Python]
[Java, Python]

Process finished with exit code 0

使用Predicate可以充分简化集合的运算,

 

原文地址:https://www.cnblogs.com/shadow-shine/p/9704419.html

时间: 2024-08-28 07:46:09

java集合(3)-Java8新增的Predicate操作集合的相关文章

&lt;JAVA8新增内容&gt;关于集合的操作(Collection/Iterator/Stream)

因为下文频繁使用lambda表达式,关于Java中的lambda表达式内容请见: http://www.cnblogs.com/guguli/p/4394676.html 一.使用增强的Iterator遍历集合元素 Iterator接口也是Java集合框架的成员,但它与Collection系列,Map系列的集合不一样:Collection系列集合,Map系列集合主要用于承装其他对象,而Iterator则主要用于遍历(即迭代访问)Collection集合中的元素,Iterator对象也被称为迭代器

java8 新增的@Repeatable注解

* java8 新增的@Repeatable注解,其实只是语法糖而已.  * java8 注解的 {@link RepeatAnn} 类与 {@link Annotations}是等价的.  * 新注解讲语法糖转化为注解值为数组形式. package com.github.jdk8.ebook.java8_recipes2nd_edition; import java.lang.annotation.Annotation; import java.lang.annotation.ElementT

改善java程序的151个建议--数组和集合

60.性能考虑,数组是首选,在基本类型处理方面,数组还是占优势的,而且集合类的底层也都是通过数组实现,建议在性能要求较高的场景中使用数组替代集合. 61.如果有必要,使用变长数组:我们可以通过对数组扩容"婉转"地解决数组扩容问题,下面采用的是Arrays数组工具类的copyOf方法,产生了一个newLen长度的新数组,并把原有的值拷贝了进去,之后就可以对超长的元素进行赋值了 62.警惕数组的浅拷贝 Person[] p=new Person[5]; Person[] p2=Arrays

java8中的流操作

https://www.ibm.com/developerworks/cn/java/j-experience-stream/index.html Stream 流是 Java 8 新提供给开发者的一组操作集合的 API,将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选.排序.聚合等.元素流在管道中经过中间操作(intermediate operation)的处理,最后由终端操作 (terminal operation) 得到前面处理的结果.Strea

7.8 操作集合的工具类:Collections

目录 一.排序操作 二.查找和替换功能 三.同步控制 四.设置不可变集合 五.Java 9新增的不可变集合 一.排序操作 Collections提供了如下常用类方法用于对List集合进行排序: ★void reverse(List list):反转指定的List集合中的元素顺序. ★void shuffle(List list):对Lsit集合中的元素进行随机排序(shuffle方法模仿了"洗牌"动作). ★void sort(List list):根据元素的自然顺序对指定集合元素按升

lambda -- Java 8 find first element by predicate

    Java 8 find first element by predicate up vote6down votefavorite I've just started playing with Java 8 lambdas and I'm trying to implement some of the things that I'm used to in functional languages. For example, most functional languages have so

使用增强for循环遍历集合的时候操作集合的问题?

1 // 遍历一个list 2 public static void printList(List<String> list){ 3 for (String string : list) { 4 list.add("eeee"); // 运行错误 5 System.out.println(string); 6 } 7 System.out.println("遍历中: "+list); 8 } 9 异常信息如下: 10 Exception in threa

跟王老师学集合(十):操作集合的工具类:Collections

操作集合的工具类:Collections 主讲人:王少华  QQ群号:483773664 Java提供了一个操作Set.List和Map等集合的工具类:Collections,该工具提供了大量方法对集合元素进行排序.查询和修改等操作,还提供了将集合元素实现同步控制等方法. 一.排序操作 (一).方法 Collections提供了如下几个方法用于对List集合元素进行排序 static void reverse(List list):反转指定List集合中元素的顺序 static void shu

python基础10 字符串操作,字典操作,集合操作

本节内容: 字符串操作 字典操作 集合操作 字符串操作 概述 字符串是以''或""括起来的任意文本,比如'abc',"xyz"等等.请注意,''或""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c这3个字符. 如果字符串本身包含'怎么办?比如我们要表示字符串 I'm OK ,这时,可以用" "括起来表示: "I'm OK" 类似的,如果字符串包含",我们就可以用'