Java中的ConcurrentSkipListSet removeAll()方法
java.util.concurrent.ConcurrentSkipListSet 中的 removeAll() 方法是Java中的内置函数,它将从此集中删除指定集合中包含的所有元素。如果指定的集合也是一个集合,则此操作有效地修改此集,使其值为两个集合之间的不对称集差异。
语法:
public boolean removeAll(Collection c)
参数: 该函数接受一个单一的参数“c”。
返回值: 如果调用结果导致此集合更改,则函数返回true。
异常: 该函数抛出以下异常:
- ClassCastException - 如果此集合中一个或多个元素的类型与指定的集合不兼容。
- NullPointerException - 如果指定的集合或其任何元素为null。
下面的程序说明了ConcurrentSkipListSet.removeAll()方法:
程序 1:
//Java程序演示ConcurrentSkipListSet的removeAll()方法
import java.util.concurrent.*;
import java.util.ArrayList;
import java.util.List;
class ConcurrentSkipListSetremoveAllExample1{
public static void main(String[] args)
{
//初始化列表
List<Integer> list = new ArrayList<Integer>();
//将元素添加到列表
for (int i = 1; i <= 10; i += 2)
list.add(i);
//列表的内容
System.out.println("列表的内容:" + list);
//初始化集
ConcurrentSkipListSet<Integer>
set = new ConcurrentSkipListSet<Integer>();
//在集中添加元素
for (int i = 1; i <= 10; i++)
set.add(i);
//集的内容
System.out.println("集的内容:" + set);
//从集中删除所有在列表中的元素
set.removeAll(list);
//删除后集的内容
System.out.println("删除后集的内容:" + set);
}
}
列表的内容:[1, 3, 5, 7, 9]
集的内容:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
删除后集的内容:[2, 4, 6, 8, 10]
程序 2: 显示在removeAll()中引发NullPOinterException的程序。
//Java程序演示ConcurrentSkipListSet的removeAll()方法
import java.util.concurrent.*;
import java.util.ArrayList;
import java.util.List;
class ConcurrentSkipListSetremoveAllExample1{
public static void main(String[] args)
{
//初始化集
ConcurrentSkipListSet<Integer>
set = new ConcurrentSkipListSet<Integer>();
//在集中添加元素
for (int i = 1; i <= 10; i++)
set.add(i);
//集的内容
System.out.println("集的内容:" + set);
try {
//从集中删除所有为null的元素
set.removeAll(null);
}
catch (Exception e) {
System.out.println("异常:" + e);
}
}
}
集的内容:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
异常:java.lang.NullPointerException
参考:
https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentSkipListSet.html#removeAll-java.util.Collection-
极客教程