import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;public class ArrayAdd { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr1={1,3,5,7,9};
int[] arr2={2,4,6,8,10};
List<Comparable> al = new ArrayList<Comparable>();
for(int i=0;i<arr1.length;i++){
al.add(arr1[i]);
}
for(int j=0;j<arr2.length;j++){
al.add(arr2[j]);
}
Iterator<Comparable> it=al.iterator();
while(it.hasNext()){
Integer obj=(Integer)it.next(); al.add(obj);
}
al.toArray();
System.out.println(al);
}}=========================================================================
控制台异常:
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
at java.util.AbstractList$Itr.next(AbstractList.java:343)
at com.hsy.interView.ArrayAdd.main(ArrayAdd.java:28)
大家来帮着看看啊!谢谢。
import java.util.Collections;
import java.util.Iterator;
import java.util.List;public class ArrayAdd { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr1={1,3,5,7,9};
int[] arr2={2,4,6,8,10};
List<Comparable> al = new ArrayList<Comparable>();
for(int i=0;i<arr1.length;i++){
al.add(arr1[i]);
}
for(int j=0;j<arr2.length;j++){
al.add(arr2[j]);
}
Iterator<Comparable> it=al.iterator();
while(it.hasNext()){
Integer obj=(Integer)it.next(); al.add(obj);
}
al.toArray();
System.out.println(al);
}}=========================================================================
控制台异常:
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
at java.util.AbstractList$Itr.next(AbstractList.java:343)
at com.hsy.interView.ArrayAdd.main(ArrayAdd.java:28)
大家来帮着看看啊!谢谢。
所以在Java中迭代器遍历列表时会对列表加锁,此时不允许增删列表中的数据。
Integer obj=(Integer)it.next(); al.add(obj);
}
这一段是干什么的?在 ArrayList 取出值再放进去?
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;public class ArrayAdd{ /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr1 = { 1, 3, 5, 7, 9 };
int[] arr2 = { 2, 4, 6, 8, 10 };
List<Comparable> al = new ArrayList<Comparable>(); for (int i = 0; i < arr1.length; i++) {
al.add(arr1[i]);
} for (int j = 0; j < arr2.length; j++) {
al.add(arr2[j]);
}
Iterator<Comparable> it = al.iterator();
while (it.hasNext()) {
Integer obj = (Integer) it.next();
//al.add(obj);
}
al.toArray();
System.out.println(al);
}}使用遍历的时候不能往al这个对象添加数据
Integer obj = (Integer) it.next();
//al.add(obj);
把al.add(obj);去掉即可
顺便问一下,你的这种java code的格式是怎么出来的?
顺便问一下,你的这种java code的格式是怎么出来的?
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;public class Test { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr1 = { 1, 3, 5, 7, 9 };
int[] arr2 = { 2, 4, 6, 8, 10 };
List<Comparable> al = new ArrayList<Comparable>(); for (int i = 0; i < arr1.length; i++) {
al.add(arr1[i]);
} for (int j = 0; j < arr2.length; j++) {
al.add(arr2[j]);
}
Collections.sort(al);
System.out.println(al);
}}
-------------------------------------------------------------------
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.concurrent.CopyOnWriteArrayList$COWIterator.set(CopyOnWriteArrayList.java:1013)
at java.util.Collections.sort(Collections.java:121)
at com.hsy.interView.ArrayAdd.main(ArrayAdd.java:32)
at java.util.concurrent.CopyOnWriteArrayList$COWIterator.set(CopyOnWriteArrayList.java:1013)
at java.util.Collections.sort(Collections.java:121)
at com.hsy.interView.ArrayAdd.main(ArrayAdd.java:32)你报的错的类名是ArrayAdd 我刚才贴的代码类名是 Test