Java编程中ArrayList和CopyOnWriteArrayList之间的区别。
ArrayList和CopyOnWriteArrayList都是Java中List接口的实现。但是也存在某些差异。
以下是ArrayList和CopyOnWriteArrayList之间的重要区别。
ArrayList与CopyOnWriteArrayList的示例
ArrayListDemo.java
import java.util.*; public class ArrayListDemo{ public static void main(String[] args){ ArrayList l = new ArrayList(); l.add("A"); l.add("B"); l.add("C"); Iterator itr = l.iterator(); while (itr.hasNext()){ String s = (String)itr.next(); if (s.equals("B")){ itr.remove(); } } System.out.println(l); } }
输出结果
[A,C]
示例
CopyOnWriteArrayListDemo.java
import java.util.concurrent.CopyOnWriteArrayList; import java.util.*; class CopyOnWriteArrayListDemo extends Thread { static CopyOnWriteArrayList l = new CopyOnWriteArrayList(); public static void main(String[] args) throws InterruptedException{ l.add("A"); l.add("B"); l.add("C"); Iterator itr = l.iterator(); while (itr.hasNext()){ String s = (String)itr.next(); System.out.println(s); if (s.equals("B")){ //引发RuntimeException- itr.remove(); } Thread.sleep(1000); } System.out.println(l); } }
输出结果
A B Exception in thread "main" java.lang.UnsupportedOperationException