天天看点

通过Arrays.sort()方法对数组进行排序

一、Arrays.sort()方法是一种快速排序方法,它合适用于元素少于47个数的排序,具体排序可以参考下面的代码。

二、它可以用于数组的从小到大也可以用于数组的从大到小进行排序,下面讲解一下四种排序的方法。

a)  从小到大排序Arrays.sort(num)。

Integer[] arr = new Integer[]{3,60,2,1,4,55,6,8,47,2,3,5};
	Arrays.sort(arr);
	System.out.println("从小到大排序:");
	for(int i =0;i<arr.length ;i++){
		System.out.print(arr[i]+" ");//1 2 2 3 3 4 5 6 8 47 55 60 
	}
           

b) 从大到小排序:

Arrays.sort(num, new Comparator<Integer>() {

            @Override

            public int compare(Integer o1, Integer o2) {

                // TODO Auto-generated method stub

                return o2-o1;

            }

        });

Integer[] arr = new Integer[]{3,60,2,1,4,55,6,8,47,2,3,5};
Arrays.sort(arr, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
		// TODO Auto-generated method stub
		return o2-o1;
	}
});
System.out.println("从大到小排序:");
for(int i =0;i<arr.length ;i++){
	System.out.print(arr[i]+" ");//60 55 47 8 6 5 4 3 3 2 2 1 
}
           

c)在第N位以后从小到大排序,注意不是下标为N:Arrays.sort(num,N,num.length);

Integer[] arr = new Integer[]{3,60,2,1,4,55,6,8,47,2,3,5};
Arrays.sort(arr,2,arr.length);
System.out.println("在第二位(不是数组下标为2)以后进行从小到大排序:");
for(int i =0;i<arr.length ;i++){
	System.out.print(arr[i]+" ");
}
           

d)在第N位从大到小排序,注意不是下标为N:

Arrays.sort(num,N,num.length,new Comparator<Integer>() {

            @Override

            public int compare(Integer o1, Integer o2) {

                return o2-o1;

            }

        });

Integer[] arr = new Integer[]{3,60,2,1,4,55,6,8,47,2,3,5};
Arrays.sort(arr,5,arr.length,new Comparator<Integer>() {
 
@Override
public int compare(Integer o1, Integer o2) {
 
	return o2-o1;
}
});
System.out.println("在第五位(不是数组下标为5)以后进行从大到小排序:");
for(int i =0;i<arr.length ;i++){
	System.out.print(arr[i]+" ");
}
           
public class ArraySortTest {
	public static void main(String[] args) {
		Integer[] arr = new Integer[]{3,60,2,1,4,55,6,8,47,2,3,5};
		
		
		Arrays.sort(arr);
		System.out.println("从小到大排序:");
		for(int i =0;i<arr.length ;i++){
			System.out.print(arr[i]+" ");//1 2 2 3 3 4 5 6 8 47 55 60 
		}
		
		Arrays.sort(arr, new Comparator<Integer>() {

			@Override
			public int compare(Integer o1, Integer o2) {
				// TODO Auto-generated method stub
				return o2-o1;
			}
		});
		System.out.println("\n从大到小排序:");
		for(int i =0;i<arr.length ;i++){
			System.out.print(arr[i]+" ");//60 55 47 8 6 5 4 3 3 2 2 1 
		}
		Arrays.sort(arr,2,arr.length);
		System.out.println("\n在第二位(不是数组下标为2)以后进行从小到大排序:");
		for(int i =0;i<arr.length ;i++){
			System.out.print(arr[i]+" ");//60 55 1 2 2 3 3 4 5 6 8 47 
		}
		Arrays.sort(arr,5,arr.length,new Comparator<Integer>() {

			@Override
			public int compare(Integer o1, Integer o2) {

				return o2-o1;
			}
		});
		System.out.println("\n在第五位(不是数组下标为5)以后进行从大到小排序:");
		for(int i =0;i<arr.length ;i++){
			System.out.print(arr[i]+" ");//60 55 1 2 2 47 8 6 5 4 3 3 
		}

	}
}
           

继续阅读