Java 8 ArrayDeque removeIf()方法及示例

Java 8 ArrayDeque removeIf()方法及示例

ArrayDeque的 removeIf() 方法用于从ArrayDeque中删除所有符合作为参数传递给该方法的谓词过滤条件的元素。如果某些元素被从Vector中删除,该方法返回true。

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

语法

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

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

返回: 如果predicate返回true并且一些元素被删除,该方法返回 True

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

下面的程序说明了ArrayDeque的removeIf()方法。

例1: 演示ArrayDeque的removeIf()方法,ArrayDeque包含一组字符串,并删除以A开头的字符串。

// Java Program Demonstrate removeIf()
// method of ArrayDeque
  
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // create an ArrayDeque
        // containing a list of string values
        ArrayDeque<String> students = new ArrayDeque<String>();
  
        // Add Strings to list
        // each string represents student name
        students.add("Aman");
        students.add("Sanjeet");
        students.add("Amar");
        students.add("Rabi");
        students.add("Shabbir");
  
        // apply removeIf() method
        // to remove names which start with A
        students.removeIf(n -> (n.charAt(0) == 'A'));
  
        System.out.println("Students name do not starts with A");
  
        // print list
        for (String str : students) {
            System.out.println(str);
        }
    }
}

输出:

Students name do not starts with A
Sanjeet
Rabi
Shabbir

例2: 演示ArrayDeque上的removeIf()方法,ArrayDeque包含了一组学生对象,可以删除所有分数低于40分的学生。

// Java Program Demonstrate removeIf()
// method of ArrayDeque
  
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // create an ArrayDeque
        // containing a list of Student objects
        ArrayDeque<student> students = new ArrayDeque<student>();
  
        // Add student object to list
        students.add(new student("Aman", 78));
        students.add(new student("Amar", 79));
        students.add(new student("Suraj", 38));
        students.add(new student("Raju", 22));
        students.add(new student("Ankit", 76));
        students.add(new student("Sanju", 62));
  
        // apply removeIf() method
        // to remove students who scores below 40
        students.removeIf(n -> (n.marks <= 40));
  
        System.out.println("Students list who score above 40");
  
        // print list
        for (student str : students) {
            System.out.println(str.name + ", " + str.marks);
        }
    }
}
  
// create student class
class student {
  
    public String name;
    public int marks;
  
    student(String name, int marks)
    {
        this.name = name;
        this.marks = marks;
    }
}

输出:

Students list who score above 40
Aman, 78
Amar, 79
Ankit, 76
Sanju, 62

例3: 演示removeIf()方法中的NullpointerException。

// Java Program Demonstrate removeIf()
// method of ArrayDeque
  
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // create an ArrayDeque
        // containing a list of string values
        ArrayDeque<String> students = new ArrayDeque<String>();
  
        // Add Strings to list
        // each string represents student name
        students.add("Aman");
        students.add("Sanjeet");
        students.add("Amar");
        students.add("Rabi");
        students.add("Shabbir");
  
        try {
            // apply removeIf() method with null filter
            students.removeIf(null);
        }
        catch (Exception e) {
            System.out.println("Exception: " + e);
        }
    }
}

输出:

Exception: java.lang.NullPointerException

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程