📅  最后修改于: 2023-12-03 14:42:46.580000             🧑  作者: Mango
CopyOnWriteArraySet
是 Java 中的一个线程安全的集合类,它内部使用了 CopyOnWriteArrayList
来实现数据存储。与 HashSet
不同的是,它的迭代器支持并发修改,而且不会抛出 ConcurrentModificationException
异常。
ConcurrentModificationException
异常CopyOnWriteArraySet
的使用方式和 HashSet
相似,可以使用 add
、remove
、contains
等方法来操作元素。同时,CopyOnWriteArraySet
还提供了 addAll
、removeAll
、retainAll
等方法用于集合操作。
下面是一个简单的使用示例:
import java.util.concurrent.CopyOnWriteArraySet;
public class CopyOnWriteArraySetExample {
public static void main(String[] args) {
CopyOnWriteArraySet<String> set = new CopyOnWriteArraySet<>();
set.add("apple");
set.add("banana");
set.add("orange");
System.out.println(set.contains("banana")); // true
set.remove("banana");
System.out.println(set.contains("banana")); // false
}
}
由于 CopyOnWriteArraySet
内部使用了 CopyOnWriteArrayList
,所以在添加、删除元素时会创建新的数组,因此需要注意内存消耗的问题。另外,由于迭代器支持并发修改,所以在迭代过程中对集合元素进行修改可能会导致迭代出错的问题。