Java:CopyOnWriteArrayList vs synchronizedList

Dee*_*eEs 13 java collections

CopyOnWritearraylist和之间有什么区别Collections.synchronizedList(..)?什么时候应该优先于另一个.

Boz*_*zho 18

CopyOnWriteArrayList当读取次数大大超过写入次数时,应使用list.这是因为您在每次写入时都要进行不必要的同步以进行昂贵的阵列复制.

例如,当您List在多线程环境中拥有一个事件侦听器时,您需要使用CopyOnWriteArrayList,因为

  • 事件被触发,因此列表经常被迭代
  • 事件监听器很少注册