java比较器Comparator的简单使用
2013-08-06 11:37
393 查看
1 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基础之一组有用的类——使用比较器对数组排序(TrySortingWithComparator)
- java比较器comparator使用示例分享
- java内外部比较器(Comparator、Comparable)使用场景与详解
- java8-Lambda中比较器Comparator的使用
- java中Comparator比较器的使用
- java比较器Comparator 使用
- 使用 java 的反射 和 comparator 实现java bean 的简单排序
- Java中比较器 Comparator 的简单例子
- Java中比较器 Comparator 的简单例子
- Java中比较器 Comparator 的简单例子
- Java中比较器 Comparator 的简单例子
- Java中比较器 Comparator 的简单例子
- java comparable comparator 比较器的使用 及 自定义比较器
- Java中比较器 Comparator 的简单例子
- Java基础之Comparator比较器接口使用原理
- Java中比较器 Comparator 的简单例子
- 关于Java中使用Comparator比较器的记录
- Java中比较器 Comparator 的简单例子
- Java常用类库——Arrays类(用于普通数组操作)、比较器(Comparable、Comparator 用于对象排序)的使用
- java中TreeSet的Comparator比较器的三种使用方法