java比较器Comparator的简单使用


1
import java.util.ArrayList; 2 import java.util.Collections; 3 import java.util.Comparator; 4 import java.util.List; 5 6 public class ComparatorTest implements Comparator<stuEntity> { 7 8 /** 9 * @param args 10 */ 11 public static void main(String[] args) { 12 List<stuEntity> list = new ArrayList<stuEntity>(); 13 stuEntity stud1=new stuEntity(); 14 stud1.setAge(10); 15 stud1.setName("abc"); 16 stuEntity stud2=new stuEntity(); 17 stud2.setAge(10); 18 stud2.setName("bdc"); 19 stuEntity stud3=new stuEntity(); 20 stud3.setAge(5); 21 stud3.setName("bdd"); 22 stuEntity stud4=new stuEntity(); 23 stud4.setAge(30); 24 stud4.setName("aad"); 25 26 list.add(stud1); 27 list.add(stud2); 28 list.add(stud3); 29 list.add(stud4); 30 31 Collections.sort(list, new ComparatorTest()); 32 33 for(stuEntity stud:list){ 34 System.out.println(stud.getAge()+":"+stud.getName()); 35 } 36 } 37 /** 38 * 39 */ 40 @Override 41 public int compare(stuEntity stud1, stuEntity stud2) { 42 //根据姓名排序 43 int maxname=stud1.getName().compareTo(stud2.getName()); 44 if(maxname!=0) 45 return maxname; 46 //根据年龄排序 47 int maxage=stud1.getAge()-stud2.getAge(); 48 //if(maxage!=0) 49 return maxage; 50 51 52 53 } 54 55 }

输出:

30:aad
10:abc
10:bdc
5:bdd

java的比较器很有用,实现Comparator接口的compare()这个回调方法来制定排序规则,然后调用Collections.sort(list, new ComparatorTest());就可以将List进行排序,很方便

使用时要注意compare()方法中的return的先后顺序,优先的排序规则要写在前面

实体类:

/**

 * 学生实体类

 * 

 */

public class stuEntity {

    private int studentId;// 学号

    private String name;

    private int age;

    private String sex;// 性别

    private int roomNumber;// 房间号

    private String degree;//学位

    private int grade;//年级

    private String deviceNumber;// 设备号

    private int groupNumber;// 所属的小组

    private int javaScore;// java成绩

    private int netScore;// NET成绩

    public String getDegree() {

        return degree;

    }



    public void setDegree(String degree) {

        this.degree = degree;

    }



    public int getGrade() {

        return grade;

    }



    public void setGrade(int grade) {

        this.grade = grade;

    }







    /**

     * 初始化有参构造函数

     * 

     * @param id

     * @param name

     * @param age

     * @param sex

     * @param roomNumber

     * @param deviceNumber

     * @param groupNumber

     * @param javaScore

     * @param netScore

     */

    public stuEntity(String name, int age, String sex, int roomNumber,

            String deviceNumber, int groupNumber, int javaScore, int netScore) {

        this.name = name;

        this.age = age;

        this.sex = sex;

        this.roomNumber = roomNumber;

        this.deviceNumber = deviceNumber;

        this.groupNumber = groupNumber;

        this.javaScore = javaScore;

        this.netScore = netScore;

    }



    /**

     * 无参构造函数

     */

    public stuEntity() {



    }



    public int getJavaScore() {

        return javaScore;

    }



    public void setJavaScore(int javaScore) {

        this.javaScore = javaScore;

    }



    public int getNetScore() {

        return netScore;

    }



    public void setNetScore(int netScore) {

        this.netScore = netScore;

    }



    



    public int getStudentId() {

        return studentId;

    }



    public void setStudentId(int studentId) {

        this.studentId = studentId;

    }



    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;

    }



    public String getSex() {

        return sex;

    }



    public void setSex(String sex) {

        this.sex = sex;

    }



    public int getRoomNumber() {

        return roomNumber;

    }



    public void setRoomNumber(int roomNumber) {

        this.roomNumber = roomNumber;

    }



    public String getDeviceNumber() {

        return deviceNumber;

    }



    public void setDeviceNumber(String deviceNumber) {

        this.deviceNumber = deviceNumber;

    }



    public int getGroupNumber() {

        return groupNumber;

    }



    public void setGroupNumber(int groupNumber) {

        this.groupNumber = groupNumber;

    }

}

你可能感兴趣的:(comparator)