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)
大家来帮着看看啊!谢谢。

解决方案 »

  1.   

    将两个int型数组合并,并且数组内部要进行排序
      

  2.   

    如果允许迭代器遍历列表al时又向al中添加数据,那么就会产生一个问题:迭代器需不需要遍历添加的数据?
    所以在Java中迭代器遍历列表时会对列表加锁,此时不允许增删列表中的数据。
      

  3.   

    用CopyOnWriteArrayList就木有问题了
      

  4.   

    将java.util.ArrayList统统换成java.util.concurrent.CopyOnWriteArrayList
      

  5.   

    while(it.hasNext()){
    Integer obj=(Integer)it.next(); al.add(obj);
    }
    这一段是干什么的?在 ArrayList 取出值再放进去?
      

  6.   


    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);去掉即可
      

  7.   

    这样出来没有对list内部元素进行排序啊。
    顺便问一下,你的这种java code的格式是怎么出来的?
      

  8.   

    这样出来没有对list内部元素进行排序啊。
    顺便问一下,你的这种java code的格式是怎么出来的?
      

  9.   

    如果要对数组排序,请使用java.util.Arrays.sort方法如果对list排序,请使用java.util.Collections.sort方法
      

  10.   


    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);
    }}
      

  11.   

    写在【code=Java】【/code】便签里面
      

  12.   

    这个报了异常了
    -------------------------------------------------------------------
    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)
      

  13.   

    6楼正解 java中的CopyOnWriteArrayList专门用来处理并发的List
      

  14.   

    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)你报的错的类名是ArrayAdd 我刚才贴的代码类名是 Test
      

  15.   

    不好意思 ,开始把那个ArrayList 改成CopyOnWriteArrayList 忘了改回来了