Java中的利用List实现数组排序

重点内容
-compareTo与compare方法的区别
-List数组实现不限定的多个类对象添加
-Collections.sort排序的使用


易混淆的两个方法区别:
1、compareTo(T o)方法是java.lang.Comparable接口中的方法。当需要对某个类的对象进行【排序】时,该类需要实现Comparable接口的,必须重写public int compareTo(T o)方法。比如:MapReduce中Map函数和Reduce函数处理的

代码块

首先,写一个Student类,例如:

public  class Student implements Comparable<Student>
{
     public String No;
     public String Name;
     public int   Age;
     public Student(String No,String Name,int Age)
     {
         this.No=No;
         this.Name=Name;
         this.Age=Age;   
     }
    // Getters and Setters
    public String getNo() 
    {
        return No;
    }
    public void setNo(String no)
    {
        this.No = no;
    }
    public String getName() 
    {
        return Name;
    }
    public void setName(String name)
    {
        this.Name = name;
    }
    public int getAge()
    {
        return Age;
    }
    public void setAge(int age) 
    {
        this.Age = age;
    }
    //compareTo父类的重写
    @Override
    public int compareTo(Student o) 
    {
         if(this ==o) return 0;  
         else if (o!=null && o instanceof Student) 
         {   
             Student u = (Student) o; 
             if(Age<=u.Age) 
                 return -1;
             else           
                 return 1;

         }
         else return -1;

    }
    //字符串输出,toString方法父类的重写
    @Override
    public String toString()
    {
        return getNo()+" "+getName()+" "+getAge();
    }
}

接下来写一个测试类Main:

public class Main {
    public static void main(String[] args) {
        List<Student> stu=new ArrayList<>();
        stu.add(new Student("001","张三",20));
        stu.add(new Student("002","李四",25));
        stu.add(new Student("003","王明",29));
        stu.add(new Student("004","吴梦",24));
        Collections.sort(stu,COMPARATOR);
        System.out.println("排序后名单输出为:");
        System.out.println(stu);
    }
}

运行结果:


猜你喜欢

转载自blog.csdn.net/walk_power/article/details/52670198