求助java针对对象的某个属性进行排序(不是简单地升序降序)

一个方法传进去一个List,List的对象有某个属性number(int)。这个属性封装了,可以用list.get(i).getNumber得到这个属性。我要按照这个属性的大小根据一些规则对List进行重排序(不是简单的升降排序,必须借助两个list进行组合得到),需要输出我重排序后的List。我不清楚到底用什么数据结构可以完成操作。求助

希望大神能大致写个伪代码提示下。谢谢

你传到list排序时传入一个自定义比较器,在自定义比较器中定义你的比较规则就好。

http://www.cnblogs.com/liuyuanyuanGOGO/p/java_collections.html


先写比较器
class MyCompartor implements Comparator
{
     @Override
     public int compare(Object o1, Object o2)
    {

           StudentDTO sdto1= (StudentDTO )o1;

           StudentDTO sdto2= (StudentDTO )o2;

           return sdto1.getAge.compareTo(stdo2.getAge()) // 这里getAge换成gerNumber

    }
}

调用的时候实例化你定义的比较器
MyComparetor mc = new MyComparetor();
作为第二个参数传入
Collections.sort(studentList,mc);     //按照age升序 22,23,

可以定义一个Comparator实现类,然后直接调用java的集合类库Collections.sort方法,完成排序。