Java ArrayDeque retainAll() 方法及示例



描述

java ArrayDeque retainAll(Collection<?> c) 方法保留 ArrayDeque 物件和提供的集合元素中存在的全部公共元素,並刪除其他剩餘元素。此方法會修改 ArrayDeque 物件。

宣告

以下是 java.util.ArrayDeque.retainAll(Collection<?> c) 方法的宣告

public boolean retainAll​(Collection<?> c)

引數

c − 包含要從此集合中保留的元素的集合。

返回值

如果此 ArrayDeque 因呼叫而發生更改,則返回 true。

異常

NullPointerException − 如果此 ArrayDeque 包含一個或多個 null 元素,並且指定的集合不支援 null 元素,或者如果指定的集合為 null。

示例 #1

以下示例演示了使用帶整數的 Java ArrayDeque retainAll() 方法。我們建立了一個整數的 ArrayDeque,添加了一些元素,列印它,然後使用 retainAll() 方法保留一些元素。由於 ArrayDeque 已被修改,因此列印它以檢查是否保留了指定的元素。

package com.tutorialspoint;

import java.util.ArrayDeque;
import java.util.Arrays;

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(25);
      deque.add(30);
      deque.add(20);
      deque.add(18);        

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

      // it will retain two common elements
      System.out.println("ArrayDeque modified:  " + deque.retainAll(Arrays.asList(11,30,20,12)));
	  
      // let us print all the elements available in deque again
      System.out.println("ArrayDeque = " + deque);
   }
}

讓我們編譯並執行上述程式,這將產生以下結果:

ArrayDeque = [25, 30, 20, 18]
ArrayDeque modified:  true
ArrayDeque = [30, 20]

示例 #2

以下示例演示了使用帶字串的 Java ArrayDeque retainAll() 方法。我們建立了一個字串的 ArrayDeque,添加了一些元素,列印它,然後使用 retainAll() 方法保留一些元素。由於 ArrayDeque 已被修改,因此列印它以檢查是否保留了指定的元素。

package com.tutorialspoint;

import java.util.ArrayDeque;
import java.util.Arrays;

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("B");
      deque.add("C");
      deque.add("D");        

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

      // it will retain two common elements
      System.out.println("ArrayDeque modified:  " + deque.retainAll(Arrays.asList("E","B","C","F")));
	  
      // let us print all the elements available in deque again
      System.out.println("ArrayDeque = " + deque);
   }
}

讓我們編譯並執行上述程式,這將產生以下結果:

ArrayDeque = [A, B, C, D]
ArrayDeque modified:  true
ArrayDeque = [B, C]

示例 #3

以下示例演示了使用帶 Student 物件的 Java ArrayDeque retainAll() 方法。我們建立了一個 Student 物件的 ArrayDeque,添加了一些元素,列印它,然後使用 retainAll() 方法保留一些學生。由於 ArrayDeque 已被修改,因此列印它以檢查是否保留了指定的元素。

package com.tutorialspoint;

import java.util.ArrayDeque;
import java.util.Arrays;

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 return true after retaining two students from deque
      System.out.println("Student removed : " + deque.retainAll(
         Arrays.asList(new Student(2, "Robert"),new Student(3, "Adam"))));
	  
      // let us print all the elements available in deque again
      System.out.println("ArrayDeque = " + deque);
   }
}
class Student {
   int rollNo;
   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 ]]
Student removed : true
ArrayDeque = [[ 2, Robert ], [ 3, Adam ]]
java_util_arraydeque.htm
廣告