Java 中的 ArrayList removeIf() 方法
ArrayList 的 removeIf() 方法用于删除满足传递给该方法的谓词过滤器的所有元素的此 ArrayList 中的元素。
迭代期间抛出的错误或运行时异常或谓词传递给调用方。如果我们能够删除某个元素,则此方法返回True。
Java 8具有一种重要的内置函数接口,即Predicate。 Predicate或 condition checking function,检查给定输入是否满足给定条件,并为相同的Boolean 结果返回一个布尔值,表示是否满足该条件。
Java 8 Predicate with Examples.
语法:
public boolean removeIf(Predicate filter)
参数: 此方法接受一个参数, filter 表示返回要删除的元素的谓词。
返回值: 如果谓词返回 true,并且我们能够删除元素,则此方法返回 True。
异常: 如果指定的过滤器为空,则此方法将引发NullPointerException。
下面的程序演示了ArrayList的removeIf()方法:
程序1: 在ArrayList上演示removeIf()方法,其中包含一组数字,只有可被3整除的数字将被删除。
// Java程序演示removeIf()
// ArrayList方法
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// 创建一个ArrayList
// 含有一个数字列表
ArrayList<Integer> Numbers = new ArrayList<Integer>();
// 向列表添加数字
Numbers.add(23);
Numbers.add(32);
Numbers.add(45);
Numbers.add(63);
// 应用removeIf()方法
// 我们要删除可被3整除的数字
Numbers.removeIf(n-> (n%3 == 0));
// 打印数字列表
for (int i : Numbers) {
System.out.println(i);
}
}
}
23
32
程序2: 在 ArrayList 上演示 removeIf() 方法,其中包含一组学生名称,名称以”S”开头的将被删除。
// Java程序演示removeIf()
// ArrayList方法
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// 创建一个ArrayList
// 里面包含一组学生名称,这实际上是字符串值
ArrayList<String> students = new ArrayList<String>();
// 添加学生名称
students.add("Ram");
students.add("Mohan");
students.add("Sohan");
students.add("Rabi");
students.add("Shabbir");
// 应用removeIf()方法
// 我们要删除以S开头的名称
students.removeIf(n-> (n.charAt(0) == 'S'));
System.out.println("上述学生的名称均不以S开头。");
// 打印学生名称列表
for (String str : students) {
System.out.println(str);
}
}
}
上述学生的名称均不以S开头。
Ram
Mohan
Rabi
参考: https://docs.oracle.com/javase/10/docs/api/java/util/ArrayList.html#removeIf(java.util.function.Predicate)
极客教程