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
廣告