一个方法传进去一个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方法,完成排序。