Arrays.sort()总结

  1. Arrays.sort()中只有数组参数

    int[] array = {5, 6, -1, 4};
    Arrays.sort(array);

    这种是默认的排序,按照字典序(ASCII)的顺序进行排序。
  2. Arrays.sort()中数组参数和排序方法

    1. 使用提供的方法

      String[] str = {“abc”, “aaa”, “abc”};
      Arrays.sort(str, String.CASE_INSENSITIVE_ORDER);

      String中定义的忽略大小写,完全通过字母的顺序进行排序

      Arrays.sort(str, Collections.reverseOrder());

      反向排序

    2. 自定义排序方法
      出来使用java提供的排序方法外,还可以使用自定义的排序方法,自定义排序方法需要实现java.util.Comparetor接口中的compare方法。
      int compare(Object obj1, Object obj2)
      compare方法返回负数时代表不交换
      compare方法返回0时代表不交换
      compare方法返回正数时代表交换
      例:

package test;
import java.util.Arrays;
import java.util.Comparator;;
class TestCompare implements Comparator {
    public static Comparator testcompare = new TestCompare();
    @Override
    public int compare(ArraysSort o1, ArraysSort o2) {
        // TODO Auto-generated method stub
        if(o1.a < o2.a && o1.b < o2.b) return -1;
        else if(o1.a == o2.a && o1.b < o2.b) return 0;
        return 1;
    }

}
public class ArraysSort {
    public int a, b;
    public ArraysSort() {}
    public ArraysSort(int a,int b) {
        this.a = a;
        this.b = b;
    }
    public static void main(String[] args) {
        ArraysSort[] arrays = {new ArraysSort(2,1), new ArraysSort(1,2), 
                new ArraysSort(1,1)};
        Arrays.sort(arrays, TestCompare.testcompare);
        for(ArraysSort t : arrays) {
            System.out.println(t.a + " " + t.b);
        }

    }
}

你可能感兴趣的:(java基础学习)