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 removeAll()用法及代码示例
- Java Collection remove()用法及代码示例
- Java Collection removeIf()用法及代码示例
- Java Collection toArray()用法及代码示例
- Java Collection addAll()用法及代码示例
- Java Collection size()用法及代码示例
- Java Collection add()用法及代码示例
- Java Collection equals()用法及代码示例
- Java Collection hashCode()用法及代码示例
- Java Collection contains()用法及代码示例
- Java Collection spliterator()用法及代码示例
- Java Collection containsAll()用法及代码示例
- Java Collection clear()用法及代码示例
- Java Collection isEmpty()用法及代码示例
- Java Collection iterator()用法及代码示例
- Java Collections synchronizedSortedSet()用法及代码示例
- Java Collections checkedQueue()用法及代码示例
- Java Collections unmodifiableNavigableSet()用法及代码示例
- Java Collections checkedSet()用法及代码示例
- Java Collections copy()用法及代码示例
注:本文由纯净天空筛选整理自 Java Collection retainAll() method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。