Java中CopyOnWriteArraySet的retainAll()方法及示例
java.util.concurrent.CopyOnWriteArraySet 类的 retainAll() 方法用于从此集合中保留包含在指定集合中的所有元素。
语法:
public boolean retainAll(Collection c)
参数: 该方法以集合c作为参数,其中包含要从此集合中保留的元素。
返回值: 该方法返回true,如果此集合因调用而发生更改。
异常: 如果此集合包含空元素且指定的集合不允许空元素(可选),或者指定的集合为null,则此方法会抛出 NullPointerException 。
以下是用于说明retainAll()方法的示例。
示例1:
//Java程序示例
//用于展示Integer类型值的retainAll()方法
import java.util.concurrent.*;
public class GFG1 {
public static void main(String[] argv) throws Exception
{
try {
//创建CopyOnWriteArraySet<;Integer>;对象
CopyOnWriteArraySet<Integer>
set1 = new CopyOnWriteArraySet<Integer>();
//填充set1
set1.add(1);
set1.add(2);
set1.add(3);
set1.add(4);
set1.add(5);
//打印set1
System.out.println("CopyOnWriteArraySet操作前:"
+ set1);
//再次创建CopyOnWriteArraySet<;Integer>对象
CopyOnWriteArraySet<Integer>
set2 = new CopyOnWriteArraySet<Integer>();
set2.add(1);
set2.add(2);
set2.add(3);
//打印set2
System.out.println("要保留的Collection元素为:"
+ set2);
//使用retainAll()方法删除指定在set2中的元素
set1.retainAll(set2);
//打印set1
System.out.println("CopyOnWriteArraySet操作后:"
+ set1);
}
catch (NullPointerException e) {
System.out.println("抛出异常:" + e);
}
}
}
CopyOnWriteArraySet操作前:[1, 2, 3, 4, 5]
要保留的Collection元素为:[1, 2, 3]
CopyOnWriteArraySet操作后:[1, 2, 3]
示例2: 用于演示抛出NullPointerException。
// Java程序,演示Integer值的retainAll()方法
import java.util.concurrent.*;
public class GFG1 {
public static void main(String[] argv) throws Exception
{
try {
// 创建CopyOnWriteArraySet<Integer>的对象
CopyOnWriteArraySet<Integer>
set1 = new CopyOnWriteArraySet<Integer>();
// 填充set1
set1.add(1);
set1.add(2);
set1.add(3);
set1.add(4);
set1.add(5);
// 打印set1
System.out.println("CopyOnWriteArraySet执行retainAll()操作之前:"
+ set1);
// 创建CopyOnWriteArraySet<Integer>的另一个对象
CopyOnWriteArraySet<Integer>
set2 = null;
// 打印set2
System.out.println("要保留的集合元素:" + set2);
System.out.println("\n试图将null作为指定的元素传递\n");
// 使用retainAll()方法从set中删除在set2中指定的元素
set1.retainAll(set2);
// 打印set1
System.out.println("CopyOnWriteArraySet执行retainAll()操作之后:"
+ set1);
}
catch (NullPointerException e) {
System.out.println("抛出异常:" + e);
}
}
}
retainAll()操作之前的CopyOnWriteArraySet:[1, 2, 3, 4, 5]
要保留的集合元素:null
试图将null作为指定的元素传递
抛出异常:java.lang.NullPointerException