當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java Collection retainAll()用法及代碼示例


Java 集合接口的 retainAll() 方法僅保留此隊列中存在於指定集合中的那些元素。

用法

public boolean retainAll(Collection<?> c)

參數

參數 'c' 表示具有要保存在該集合中的元素的集合。

返回值

如果此集合因調用而更改,則 retainAll() 方法返回 true。

拋出

retainAll() 方法拋出:

UnsupportedOperationException- 如果此集合不支持 retainAll 操作。

ClassCastException- 如果此集合中一個或多個元素的類型與指定的集合不兼容。

NullPointerException- 如果此集合為 null 或者它包含一個或多個 null 元素並且調用的集合不允許 null 元素。

例子1

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.concurrent.ConcurrentLinkedQueue;
public class JavaCollectionRetainAllExample1 {
    public static void main(String[] args) {
        Collection<Character> collection = new ConcurrentLinkedQueue<Character>();
        char i;
        for(i='a';i<='z';++i){
            collection.add(i);
        }
        System.out.println("collection:"+collection);
        List<Character> list = new ArrayList<Character>();
        list.add('a');
        list.add('e');
        list.add('i');
        list.add('o');
        list.add('u');
        //retains only those elements in the collection which are present in list
        collection.retainAll(list);
        System.out.println("Vowels:"+collection);
    }
}

輸出:

collection:[a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z]
Vowels:[a, e, i, o, u]

例子2

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.concurrent.ConcurrentLinkedQueue;
public class JavaCollectionRetainAllExample2 {
    public static void main(String[] args) {
        Collection<Integer> collection = new ConcurrentLinkedQueue<Integer>();
        List<Integer> list = new ArrayList<Integer>();
        for (int i=1;i<21;i++){
            collection.add(i);
        }
        System.out.println("Total no:"+ collection);
        for (int i=1;i<21;i++) {
            int j=i%2;

            if (j == 0) {
                list.add(i);
            }
        }
        //retains only those elements in the collection which are present in list
        collection.retainAll(list);
        System.out.println(" Table of 2:"+collection);
    }
}

輸出:

Total no:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
 Table of 2:[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

例子3

import java.util.ArrayDeque;
import java.util.Collection;

public class JavaCollectionRetainAllExample3 {
    public static void main(String[] args) {
        Collection<String> collection=new ArrayDeque<>();
        collection.add("Himanshu");
        collection.add("Sham");
        collection.add("Rita");
        Collection<Boolean> collection1=new ArrayDeque<>();
        //it will give an exception as it do not support null elements.
        collection1.retainAll(null);
        System.out.println(collection.containsAll(collection1));
    }
}

輸出:

Exception in thread "main" java.lang.NullPointerException
	at java.util.Objects.requireNonNull(Objects.java:203)
	at java.util.AbstractCollection.retainAll(AbstractCollection.java:405)
	at com.javaTpoint.JavaCollectionRetainAllExample4.main(JavaCollectionRetainAllExample4.java:17)

Java 集合 retainAll() 方法

Java Collection 類的 retainAll() 方法僅保留或保留該集合中包含在調用集合中的元素,並刪除所有未包含在指定集合中的元素。

用法

public boolean retainAll(Collection <? >  c)

參數

參數 'c' 表示包含要保留在該集合中的元素的集合。

返回值:

如果此集合由於此調用而發生更改,則retainAll() 方法將返回一個布爾值'true'。

拋出

UnsupportedOperationException- 如果此集合不支持 retainAll 方法。

ClassCastException- 如果此集合中一個或多個元素的類型與調用的集合不兼容。

NullPointerException- 如果此集合為 null 或者它包含一個或多個 null 元素並且指定的集合不允許 null 元素。

例子1

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.concurrent.ConcurrentLinkedQueue;
public class JavaCollectionRetainAllExample4 {
    public static void main(String[] args) {
        Collection<Character> collection = new ConcurrentLinkedQueue<Character>();
        char c;
        for(c='A';c<='Z';++c){
            // collection does not support null elements
            collection.add(c);
        }
        System.out.println("collection:"+collection);
        List<Character> list = new ArrayList<Character>();
        list.add('A');
        list.add('E');
        list.add('I');
        list.add('O');
        list.add('U');
        //retains only those elements in the collection which are present in list
        collection.retainAll(list);
        System.out.println("Vowels:"+collection);
    }
}

輸出:

collection:[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z]
Vowels:[A, E, I, O, U]

例子2

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.concurrent.ConcurrentLinkedQueue;
public class JavaCollectionRetainAllExample5 {
    public static void main(String[] args) {
        Collection<Integer> collection = new ConcurrentLinkedQueue<Integer>();
        int i;
        for(i=1;i<=50;++i){
            collection.add(i);
        }
        System.out.println("collection:"+collection);
        List<Integer> list = new ArrayList<Integer>();
      for ( i=1; i<=50;++i){
          if(i%5==0){
              list.add(i);
          }
      }
        //retains only those elements in the collection which are present in list
        collection.retainAll(list);
        System.out.println("Vowels:"+collection);
    }
}

輸出:

collection:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 
22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 
44, 45, 46, 47, 48, 49, 50]
Vowels:[5, 10, 15, 20, 25, 30, 35, 40, 45, 50]




相關用法


注:本文由純淨天空篩選整理自 Java Collection retainAll() method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。