Java ArrayList removeIf()方法

Java ArrayList removeIf()方法

ArrayListremoveIf() 方法用于移除该ArrayList中符合给定谓词过滤器的所有元素,该谓词过滤器被作为参数传递给该方法。

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

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

Java 8 谓词与实例。

语法

public boolean removeIf(Predicate filter)
Java

参数: 该方法接受一个参数 过滤器 ,它代表一个谓词,该谓词对要删除的元素返回真。

返回: 如果predicate返回true,并且我们能够移除元素,则此方法返回True。

异常: 如果指定的过滤器为空,该方法会抛出NullPointerException。

以下程序说明了ArrayList的removeIf()方法。

程序1: 演示ArrayList的removeIf()方法的程序,ArrayList包含一组数字,只有能被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<Integer> Numbers = new ArrayList<Integer>();
  
        // 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);
        }
    }
}
Java

输出。

23
32
Java

程序2: 在ArrayList上演示removeIf()方法,ArrayList包含一组学生名字,以 “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<String> students = new ArrayList<String>();
  
        // 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);
        }
    }
}
Java

输出。

Students name Does not start with S
Ram
Mohan
Rabi
Java

参考资料: https://docs.oracle.com/javase/10/docs/api/java/util/ArrayList.html#removeIf(java.util.function.Predicate)。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册