一个LinkedList的问题
//Name.java
public class Name{
String fn;
}
//Ll.java
import java.util.*;
public class Ll{
public static void main(String[] args){
LinkedList lname = new LinkedList();
Name name=new Name();
ListIterator i = lname.listIterator();
for(int m=0;m<10;m++){
name.fn="fname"+m;
lname.add(name);
}
while(i.hasNext()){
System.out.println(((Name)i.next()).fn);
}
}
}
为什么抛出---------- Java ----------
java.util.ConcurrentModificationException
at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:552)
at java.util.LinkedList$ListItr.next(LinkedList.java:488)
at Ll.main(Ll.java:16)
Exception in thread "main"
输出完成 (耗时 2 秒) - 正常终止
错误???
还有如果改为不用ListIterator,
//Ll.java
import java.util.*;
public class Ll{
public static void main(String[] args){
LinkedList lname = new LinkedList();
Name name=new Name();
for(int m=0;m<10;m++){
name.fn="fname"+m;
lname.add(name);
}
for(int m=0;m<lname.size();m++){
System.out.println(((Name)lname.get(m)).fn);
}
}
}
返回的记过是10个fname9,而不是 fname0-9??????why????