sort排序的两种方式

来源:互联网 发布:知乎 矢仓枫子 编辑:程序博客网 时间:2024/06/11 02:57
package com.my.action;import java.io.Serializable;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;public class Student implements Comparable<Student> {    private String name;    private String sex;    private int age;    public Student(String name, String sex, int age) {        super();        this.name = name;        this.sex = sex;        this.age = age;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getSex() {        return sex;    }    public void setSex(String sex) {        this.sex = sex;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    @Override    public String toString() {        return "Student name=" + name + ", sex=" + sex + ", age=" + age + "\n";    }    static class MyComparator implements Comparator<Student>, Serializable {        /**         *          */        private static final long serialVersionUID = 1L;        @Override        public int compare(Student o1, Student o2) {            return o1.getAge() - o2.getAge();        }    }    public static void main(String[] args) {        List<Student> studentList = new ArrayList<>();        studentList.add(new Student("张三", "男", 12));        studentList.add(new Student("李四", "女", 19));        studentList.add(new Student("王五", "男", 15));        studentList.add(new Student("赵六", "女", 22));        //sort方法排序的前提是list集合中的对象是可比较的        //方式一  Student实现comparable变为可比较的对象        Collections.sort(studentList);        //方式二 sort中穿一个comparator的构造器,让Student实现可比较        Collections.sort(studentList, new MyComparator());        System.out.println(studentList);    }    @Override    public int compareTo(Student o) {        return this.age - o.getAge();    }}
0 0
原创粉丝点击