方法一:让对象类实现comparable接口,覆写compareTo函数,里面用你说的私有数据来比较大小
方法二:调用 Arrays的另外一个方法public static <T> void sort(T[] a, Comparator<? super T> c)。后面那个参数需要你新建一个Comparator对象
Comparator comparator=new Comparator<T>() {
@Override
public int compare(T o1, T o2) {
// TODO Auto-generated method stub
return 0;
}
};

解决方案 »

  1.   

    参考楼上的,补充一下,排序的时候,要定好按对象的哪个字段排序,是升序还是降序,都在public int compare(T o1, T o2) {
            // TODO Auto-generated method stub
            if(o1 == null || o2==null){
                     return o;
    }   
          if(o1.getX()> o2.getX()){
                return 1;
    }else{
       ......
    }
    return 0;
        }
      

  2.   


    能不能给个例子我看下???我刚开始学java不是很懂万分感谢了
      

  3.   


    能不能给个例子我看下???我刚开始学java不是很懂万分感谢了
    package com.compare;import java.util.Arrays;
    import java.util.Comparator;public class Student implements Comparable<Student>{
    //就简单点按年龄大小排序
    private int age;
    Student(){
    this.age = 0;
    }
    Student(int age){
    this.age = age;
    }
    public int getAge() {
    return age;
    } public void setAge(int age) {
    this.age = age;
    } @Override
    public int compareTo(Student stu) {
    if(this.getAge()>stu.getAge()){
    return 1;
    }else if(this.getAge()<stu.getAge()){
    return -1;
    }else{
    return 0;
    }
    }
    public static void main(String[] args) {
    Student stu[] = new Student[3];
    stu[0] = new Student(2);
    stu[1] = new Student(1);
    stu[2] = new Student(3);
    // --------方法一----------
    Arrays.sort(stu);
    // --------方法二----------
    Comparator<Student> compare = new Comparator<Student>() {

    @Override
    public int compare(Student stu1, Student stu2) {
    if(stu1.getAge()>stu2.getAge()){
    return 1;
    }else if(stu1.getAge()<stu2.getAge()){
    return -1;
    }else{
    return 0;
    }
    }
    };
    Arrays.sort(stu, compare);
    //----------遍历测试-------------
    for(Student o:stu){
    System.out.println(o.getAge());
    }
    }
    }