当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。