概念
Arrays类中的sort方法承诺可以对对象数组进行排序,但要满足下面两个条件之一:
- 对象所属的类必须实现Comparable
接口。  - 额外传入一个Comparator
对象  
Comparable
如果这个类是自己写的,实现一个比较接口Comparable就可以使用Arrays工具类了。
public class Person implements Comparable<Person>{
    private String name;
    private int age;
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    // 根据名字长度排序
    @Override
    public int compareTo(Person o) {
        return this.name.length() - o.name.length();
    }
    @Override
    public String toString() {
        return this.name + " " + this.age;
    }
    public static void main(String[] args) {
        Person a = new Person("fsr", 18 );
        Person b = new Person("f", 22);
        Person[] p = {a, b};
        Arrays.sort(p);
        System.out.println(Arrays.toString(p));
    }
}输出:
[f 22, fsr 18]Comparator
对于不能修改的类,对其进行自定义的排序,需要自己写一个比较符Comparator<T>。
// 根据String长度排序
class LengthComparator implements Comparator<String>
{
    @Override
    public int compare(String o1, String o2) {
        return o1.length() - o2.length();
    }
}
public class Test {
    public static void main(String[] args) {
        String[] a = {"sdf", "ddddd", "d"};
        // 传入一个Comparator
        Arrays.sort(a, new LengthComparator());
        System.out.println(Arrays.toString(a));
    }
}输出
[d, sdf, ddddd]