您的位置:首页 > 其它

list集合根据对象属性排序举例

2015-01-21 16:14 567 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: