1、实体
package com.cn.easylink;
public class Student {
private int id;
private String name;
private float score; // 成绩
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public float getScore() {
return score;
}
public void setScore(float score) {
this.score = score;
}
}
2、比较器
package com.cn.easylink;
import java.util.Comparator;
public class StudentComparator implements Comparator<Student> {
@Override
public int compare(Student s1, Student s2) {
if(s1.getScore()<s2.getScore()){ //greater
return -1;
}
return 0;
}
}
3、测试
package com.cn.easylink;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ListSortDemo {
public static void main(String[] args) {
Student s1 = new Student();
s1.setId(1);
s1.setName("zhangsan");
s1.setScore(59.5f);
Student s2 = new Student();
s2.setId(2);
s2.setName("lisi");
s2.setScore(104.0f);
Student s3 = new Student();
s3.setId(3);
s3.setName("wuhao");
s3.setScore(55.5f);
List<Student> list = new ArrayList<Student>();
list.add(s1);
list.add(s2);
list.add(s3);
System.out.println("排序之前-----------------------");
for (Student stu : list) {
System.out.println("id=" + stu.getId() + " name=" + stu.getName()
+ " score=" + stu.getScore());
}
Collections.sort(list, new StudentComparator()); // 排序
System.out.println("排序之后-----------------------");
for (Student stu : list) {
System.out.println("id=" + stu.getId() + " name=" + stu.getName()
+ " score=" + stu.getScore());
}
}
}
结果:
排序之前-----------------------
id=1 name=zhangsan score=59.5
id=2 name=lisi score=104.0
id=3 name=wuhao score=55.5
排序之后-----------------------
id=3 name=wuhao score=55.5
id=1 name=zhangsan score=59.5
id=2 name=lisi score=104.0