Java ArrayDeque removeIf() 方法及示例



描述

java ArrayDeque removeIf() 方法检索并删除此双端队列中满足给定谓词的所有元素。如果出现异常,则将异常转发给调用者。

声明

以下是java.util.ArrayDeque.removeIf(filter) 方法的声明

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

参数

filter − 一个谓词,对于要删除的元素返回 true。

返回值

如果删除了任何元素,则返回 true。

异常

NullPointerException − 如果指定的过滤器为 null。

示例 #1

以下示例演示了使用整数的 Java ArrayDeque removeIf(filter) 方法。我们创建了一个整数的 ArrayDeque,添加了一些元素,打印它,然后使用 removeIf(filter) 方法删除偶数。由于 ArrayDeque 已被修改,因此会打印它以检查是否已删除偶数。

package com.tutorialspoint;

import java.util.ArrayDeque;

public class ArrayDequeDemo {
   public static void main(String[] args) {
      
      // create an empty array deque
      ArrayDeque<Integer> deque = new ArrayDeque<>();

      // use add() method to add elements in the deque
      deque.add(1);
      deque.add(2);
      deque.add(3);
      deque.add(4);
      deque.add(5);	  

      // let us print all the elements available in deque
      System.out.println("ArrayDeque = " + deque);

      // it will remove even numbers from the deque
      deque.removeIf(i -> i%2 == 0);
	  
      // let us print all the elements available in deque again
      System.out.println("ArrayDeque = " + deque);
   }
}

让我们编译并运行上面的程序,这将产生以下结果:

ArrayDeque = [1, 2, 3, 4, 5]
ArrayDeque = [1, 3, 5]

示例 #2

以下示例演示了使用字符串的 Java ArrayDeque removeIf(filter) 方法。我们创建了一个字符串的 ArrayDeque,添加了一些元素,打印它,然后使用 removeIf(filter) 方法删除仅包含一个字符的字符串。由于 ArrayDeque 已被修改,因此会打印它以检查是否已删除此类元素。

package com.tutorialspoint;

import java.util.ArrayDeque;

public class ArrayDequeDemo {
   public static void main(String[] args) {
      
      // create an empty array deque
      ArrayDeque<String> deque = new ArrayDeque<>();

      // use add() method to add elements in the deque
      deque.add("A");
      deque.add("BB");
      deque.add("CC");
      deque.add("D");        

      // let us print all the elements available in deque
      System.out.println("ArrayDeque = " + deque);

      // it will remove single length string
      deque.removeIf(i -> i.length() == 1);
	  
      // let us print all the elements available in deque again
      System.out.println("ArrayDeque = " + deque);
   }
}

让我们编译并运行上面的程序,这将产生以下结果:

ArrayDeque = [A, BB, CC, D]
ArrayDeque = [BB, CC]

示例 #3

以下示例演示了使用 Student 对象的 Java ArrayDeque removeIf(filter) 方法。我们创建了一个 Student 对象的 ArrayDeque,添加了一些元素,打印它,然后使用 removeIf(filter) 方法删除特定学生。由于 ArrayDeque 已被修改,因此会打印它以检查该学生对象是否已被删除。

package com.tutorialspoint;

import java.util.ArrayDeque;

public class ArrayDequeDemo {
   public static void main(String[] args) {
      
      // create an empty array deque
      ArrayDeque<Student> deque = new ArrayDeque<>();

      // use add() method to add elements in the deque
      deque.add(new Student(1, "Julie"));
      deque.add(new Student(2, "Robert"));
      deque.add(new Student(3, "Adam"));       

      // let us print all the elements available in deque
      System.out.println("ArrayDeque = " + deque);

      // it will remove if roll no is 2
      deque.removeIf(i -> i.rollNo == 2);
	  
      // let us print all the elements available in deque again
      System.out.println("ArrayDeque = " + deque);
   }
}
class Student {
   public int rollNo;
   public String name;

   Student(int rollNo, String name){
      this.rollNo = rollNo;
      this.name = name;
   }

   @Override
   public String toString() {
      return "[ " + this.rollNo + ", " + this.name + " ]";
   }
   
   @Override
   public boolean equals(Object obj) {
      Student s = (Student)obj;
      return this.rollNo == s.rollNo && this.name.equalsIgnoreCase(s.name);
   }
}

让我们编译并运行上面的程序,这将产生以下结果:

ArrayDeque = [[ 1, Julie ], [ 2, Robert ], [ 3, Adam ]]
ArrayDeque = [[ 1, Julie ], [ 3, Adam ]]
java_util_arraydeque.htm
广告