java中使用Arrays.sort()进行排序

版权声明:本文为博主原创文章,转载请附上博文链接! https://blog.csdn.net/f2764052703/article/details/88937677

1. Arrays.sort(int[] a)

这种形式是对一个数组的所有元素进行排序,并且是按从小到大的顺序。

	package study05_base;
	import java.util.Arrays;

	public class arraysSortTest {
   		public static void main(String[] args) {
        	int[] arr = { 1 ,3,5 ,2, 4 ,8 ,6, 9,7};

        	Arrays.sort(arr);

        	for (int a: arr) {
            	System.out.println(a);
        	}
    	}
	}

// 结果:	
	1
	2
	3
	4
	5
	6
	7
	8
	9

2. public static void sort(T[] a,int fromIndex, int toIndex, Comparator<? super T> c)

上面的方式只能够从小到大进行排序,如果想要从大到小进行排序,则需要使用传入对应的类的方式。

import java.util.Arrays;
import java.util.Comparator;

public class test02{
    public static void main(String[] args) {
        //注意,要想改变默认的排列顺序,不能使用基本类型(int,double, char)
        //而要使用它们对应的类
        Integer[] a = {9, 8, 7, 2, 3, 4, 1, 0, 6, 5};
        //定义一个自定义类MyComparator的对象
        Comparator cmp = new MyComparator();
        Arrays.sort(a, cmp);
        for(int i = 0; i < a.length; i ++) {
            System.out.print(a[i] + " ");
        }
    }
}


//Comparator是一个接口,所以这里我们自己定义的类MyComparator要implents该接口,而不是extends Comparator

class MyComparator implements Comparator<Integer>{
    @Override
    public int compare(Integer o1, Integer o2) {
        //如果n1小于n2,我们就返回正值,如果n1大于n2我们就返回负值,
        //这样颠倒一下,就可以实现反向排序了
        if(o1 < o2) {
            return 1;
        }else if(o1 > o2) {
            return -1;
        }else {
            return 0;
        }
    }
}

//运行结果如下:
//9 8 7 6 5 4 3 2 1 0 

猜你喜欢

转载自blog.csdn.net/f2764052703/article/details/88937677