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