📜  Java中的ArrayList removeIf()方法

📅  最后修改于: 2022-05-13 01:54:49.417000             🧑  作者: Mango

Java中的ArrayList removeIf()方法

ArrayListremoveIf()方法用于删除此 ArrayList 中满足给定谓词过滤器的所有元素,该过滤器作为参数传递给该方法。

在迭代期间抛出错误或运行时异常,或者由谓词传递给调用者。如果我们能够删除某些元素,则此方法返回True

Java 8 有一个重要的内置函数接口,即 Predicate。谓词或条件检查函数检查给定输入的给定条件,并返回一个布尔结果,指示是否满足条件。

带有示例的Java 8 谓词。

句法:

public boolean removeIf(Predicate filter)

参数:此方法采用一个参数过滤器,该过滤器表示一个谓词,该谓词对于要删除的元素返回 true。

返回:如果谓词返回 true 并且我们能够删除元素,则此方法返回True

异常:如果指定的过滤器为空,此方法将抛出NullPointerException

下面的程序说明了 ArrayList 的 removeIf() 方法:

程序 1:演示 ArrayList 上的 removeIf() 方法的程序,该方法包含一组数字,并且仅删除可被 3 整除的数字。

// Java Program Demonstrate removeIf()
// method of ArrayList
  
import java.util.*;
public class GFG {
  
    public static void main(String[] args)
    {
  
        // create an ArrayList which going to
        // contains a list of Numbers
        ArrayList Numbers = new ArrayList();
  
        // Add Number to list
        Numbers.add(23);
        Numbers.add(32);
        Numbers.add(45);
        Numbers.add(63);
  
        // apply removeIf() method
        // we are going to remove numbers divisible by 3
        Numbers.removeIf(n -> (n % 3 == 0));
  
        // print list
        for (int i : Numbers) {
            System.out.println(i);
        }
    }
}
输出:
23
32

程序 2:演示 ArrayList 上的 removeIf() 方法的程序,其中包含一组学生姓名和以“S”开头的姓名将被删除。

// Java Program Demonstrate removeIf()
// method of ArrayList
  
import java.util.*;
public class GFG {
  
    public static void main(String[] args)
    {
        // create an ArrayList which going to
        // contains a list of Student names which is actually
        // string values
        ArrayList students = new ArrayList();
  
        // Add Strings to list
        // each string represents student name
        students.add("Ram");
        students.add("Mohan");
        students.add("Sohan");
        students.add("Rabi");
        students.add("Shabbir");
  
        // apply removeIf() method
        // we are going to remove names
        // start with S
        students.removeIf(n -> (n.charAt(0) == 'S'));
  
        System.out.println("Students name Does not start with S");
        // print list
        for (String str : students) {
            System.out.println(str);
        }
    }
}
输出:
Students name Does not start with S
Ram
Mohan
Rabi

参考: https: Java Java 函数)