java比较器comparator使用示例分享
java比较器comparator使用示例分享
发布时间:2016-12-28 来源:查字典编辑
摘要:复制代码代码如下:importjava.util.ArrayList;importjava.util.Collections;importj...

复制代码 代码如下:

import java.util.ArrayList;

import java.util.Collections;

import java.util.Comparator;

import java.util.List;

public class ComparatorTest implements Comparator<stuEntity> {

/**

* @param args

*/

public static void main(String[] args) {

List<stuEntity> list = new ArrayList<stuEntity>();

stuEntity stud1=new stuEntity();

stud1.setAge(10);

stud1.setName("abc");

stuEntity stud2=new stuEntity();

stud2.setAge(10);

stud2.setName("bdc");

stuEntity stud3=new stuEntity();

stud3.setAge(5);

stud3.setName("bdd");

stuEntity stud4=new stuEntity();

stud4.setAge(30);

stud4.setName("aad");

list.add(stud1);

list.add(stud2);

list.add(stud3);

list.add(stud4);

Collections.sort(list, new ComparatorTest());

for(stuEntity stud:list){

System.out.println(stud.getAge()+":"+stud.getName());

}

}

/**

*

*/

@Override

public int compare(stuEntity stud1, stuEntity stud2) {

//根据姓名排序

int maxname=stud1.getName().compareTo(stud2.getName());

if(maxname!=0)

return maxname;

//根据年龄排序

int maxage=stud1.getAge()-stud2.getAge();

//if(maxage!=0)

return maxage;

}

}

输出:

复制代码 代码如下:

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;

}

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Java学习
热门Java学习
编程开发子分类