java中如何对数组和集合进行排序

package com.hsy.interView;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class ArrayAdd {

/**
* @param args
*/
@SuppressWarnings("unchecked")
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();
Integer obj = null;
while(it.hasNext()){
obj=(Integer)it.next();
al.add(obj.intValue());
}

*/

Collections.sort(al);//对数组排序
//Arrays.sort(al.toArray());//对list排序
System.out.println(al);
}

}


=================================================

输出结果: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

1.如果允许迭代器遍历列表al时又向al中添加数据,那么就会产生一个问题:迭代器需不需要

遍历添加的数据?所以在Java中迭代器遍历列表时会对列表加锁,此时不允许增删列表中的

数据。因此如果执行迭代器遍历的话就会报出【并发修改异常】

Exception in thread "main" java.util.ConcurrentModificationException

2.如果要对数组排序,请使用java.util.Arrays.sort()方法.

如果对list排序,请使用java.util.Collections.sort()方法.


3.java中的CopyOnWriteArrayList专门用来处理并发的List

你可能感兴趣的:(java)