CopyOnWriteArrayList 适合什么场景

CopyOnWriteArrayList 适合什么场景

ArrayList 底层是数组,适合按下标快速访问,也适合尾部追加。它不适合频繁在中间插入或删除,因为这会触发元素搬移。

基本使用

List<String> names = new ArrayList<>();
names.add("Java");
names.add("Spring");
System.out.println(names.get(0));

扩容机制

ArrayList 容量不够时会扩容。扩容不是免费操作,需要创建新数组并复制旧数据。如果能预估大小,建议指定初始容量:

List<Long> ids = new ArrayList<>(1000);

删除元素的正确方式

遍历时删除元素,不要直接在 for-each 里 remove:

Iterator<String> iterator = names.iterator();
while (iterator.hasNext()) {
if (iterator.next().startsWith("J")) {
iterator.remove();
}
}

   转载规则


《CopyOnWriteArrayList 适合什么场景》 小乐 采用 知识共享署名 4.0 国际许可协议 进行许可。
  目录