如题,
假如说有一个list,其中包含多个元素,这些元素都是javabean,例如:student类,包含(姓名,学号,成绩)属性,我想根据成绩属性对list中的元素进行一个排序(按student类的成绩属性由高到低在list中排序).本人有一个想法,就是对list中的每个元素按成绩属性排序后放入另外一个新的list中,最终在页面用新的list迭代输入,这样应该可以得到我想要的结果,就是不知有没有更好的方法啊?多谢各位啊!!

解决方案 »

  1.   

    因该有一个sort方法的。你试试看。
      

  2.   

    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());
    }
    }
      

  3.   

    实现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());
      

  4.   

    为什么要这样呢?你的list是怎么来的呢?如果是重数据库中取的话,直接在查询的时候,加上排序不就好了?