1.Array.sort()的使用方法
个人笔记,以免遗忘,JAVA小白,敬请指点~~
关于Array.sort()有三种格式,如下:
1.sort(Objetc[] a)
来进行对象的自然排序,该对象必需实现Compareable接口,重写compareableTo方法,并一般在此方法中定义这3种返回值(1,0,-1)来进行排序标准的确认,后续关于返回值的正负会进行说明。而让对象实现Compareable接口的方式,称为内部比较器。
2.sort(T[] a, Comparator>? super T<> c)
当调用此方法来进行自定义数组排序时,需要我们指定外部比较器。第二个参数就是自定义的比较器类,这个类必须继承Comparator接口并实现compare方法,于是就对T[]按照自定义的比较器规则进行排序。
3.sort(Object[] a, int fromIndex, int toIndex)
这种形式是对数组部分排序,也就是对数组a的下标从fromIndex到toIndex-1的元素排序,注意:下标为toIndex的元素不参与排序哦!
2.Array.sort()的使用范例
第一种格式的使用范例:
1.对基本类型进行排序可以直接传入基本类型数组
eg.整型数组:
int[] a=new int[]{
0,1,2,3,4,5,6};
//升序排列
Arrays.sort(a);
System.out.println("升序排列: "+Arrays.toString(a));
输出:升序排列: [0, 1, 2, 3, 4, 5, 6]
可以看到默认是进行升序排列,如果要对数组进行降序排列,你可以把它反转了,或者自定义一个Comparator类(使用的是sort的第二种格式,传入一个外部比较器,可以看后续讲解,这里超前说一下),这里用匿名内部类展示了一下降序排列的写法。值得注意的是,Comparator用于构造基本数据类型的比较器时,只能对基本类型的包装类进行排序,也就是说只能传入包装类的数组,这里我们需要首先把int[]转为Integer[]
int[] a=new int[]{
0,1,2,3,4,5,6};
//降序排列
Integer[] array = new Integer[a.length];
for(int i=0; i<a.length; i++)
{
Integer integer = new Integer(a[i]);
array[i] = integer;
}
Arrays.sort(array,new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
// TODO Auto-generated method stub
return