list中的元素为javabean,如何根据javabean中的某个属性,对list中的元素排序

chinadedavy 2011-09-18 04:24:28
如题,
假如说有一个list,其中包含多个元素,这些元素都是javabean,例如:student类,包含(姓名,学号,成绩)属性,我想根据成绩属性对list中的元素进行一个排序(按student类的成绩属性由高到低在list中排序).

本人有一个想法,就是对list中的每个元素按成绩属性排序后放入另外一个新的list中,最终在页面用新的list迭代输入,这样应该可以得到我想要的结果,就是不知有没有更好的方法啊?

多谢各位啊!!
...全文
418 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
LS1firesoar 2011-09-20
  • 打赏
  • 举报
回复
为什么要这样呢?你的list是怎么来的呢?如果是重数据库中取的话,直接在查询的时候,加上排序不就好了?
wang12 2011-09-19
  • 打赏
  • 举报
回复
实现Comparator接口,自定义一个比较器
代码示例
public class MyComp implements Comparator<Student> {

@Override
public int compare(Student o1, Student o2) {
return o1.getScore().compareTo(o2.getScore());
}
}
下面是比较
List<Student> studentList = new ArrayList<Student>();
//添加student实例到list中
Collections.sort(studentList, new MyComp());
txtdown0909 2011-09-18
  • 打赏
  • 举报
回复
正解
[Quote=引用 4 楼 xifengwujiutian 的回复:]

用collections.sort()方法
[/Quote]
xifengwujiutian 2011-09-18
  • 打赏
  • 举报
回复
用collections.sort()方法
zmk1210 2011-09-18
  • 打赏
  • 举报
回复
public static void main(String[] args) {
List<User> list=new ArrayList<User>();
User user1=new User();
user1.setA1(1);
user1.setA2(12);
user1.setA3(13);
list.add(user1);
User user2=new User();
user2.setA1(2);
user2.setA2(22);
user2.setA3(23);
list.add(user2);
User user3=new User();
user3.setA1(3);
user3.setA2(32);
user3.setA3(33);
list.add(user3);

for (int i = 0; i < list.size(); i++) {
for (int j = i+1; j < list.size(); j++) {
if (list.get(i).getA1()<list.get(j).getA1()) {
User temp=new User();
temp.setA1(list.get(j).getA1());
temp.setA2(list.get(j).getA2());
temp.setA3(list.get(j).getA3());
list.set(j, list.get(i));
list.set(i, temp);
}
}
}
for (int i = 0; i < list.size(); i++) {
System.out.println("a1="+list.get(i).getA1()+"----a2="+list.get(i).getA1()
+"----a3="+list.get(i).getA3());
}
}
zmk1210 2011-09-18
  • 打赏
  • 举报
回复
用冒泡法可以解决吧
yexiongMYBH 2011-09-18
  • 打赏
  • 举报
回复
因该有一个sort方法的。你试试看。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧