Java ArrayList.removeIf() 方法及代码示例

删除当前数组列表中符合给定断言的所有元素

定义

public boolean removeIf​(Predicate<? super E> filter)

参数

参数类型参数名称参数描述
Predicate<? super E>filter如果元素应该被删除则返回 true 的断言
类型变量E数组列表的元素类型

返回值

如果有任意元素被删除则返回 true, 否则返回 false.

抛出的异常

NullPointerException 如果断言为 null

说明

本方法方法由 Collection<E> 接口的 removeIf() 方法指派

注意事项

在迭代期间或由断言引发的错误或运行时异常被传递给调用者

示例

使用条件删除数组列表元素的示例

package com.yi21.arraylist;

import java.util.ArrayList;

public class Yi21ArraysListRemoveIf {

    public static void main(String[] args) {
        
        ArrayList<String> list = new ArrayList<>();
        list.add("Hello");
        list.add("World");
        list.add("World");
        list.add("21yi");
        
        System.out.println("数组列表中的元素个数 " + list.size());
        System.out.println("是否有元素被删除? " + list.removeIf(t -> {return t.startsWith("W");}));
        System.out.println("数组列表中的元素个数 " + list.size());
        System.out.println("是否有元素被删除? " + list.removeIf(t -> {return t.startsWith("W");}));
        System.out.println("数组列表中的元素个数 " + list.size());

    }

}

执行结果为 :

数组列表中的元素个数 4
是否有元素被删除? true
数组列表中的元素个数 2
是否有元素被删除? false
数组列表中的元素个数 2