java 运用comparator接口对ArrayList排序无效

java 使用comparator接口对ArrayList排序无效
本帖最后由 wre_most2 于 2012-10-18 20:12:33 编辑
我想对mRelaItems进行排序(如下代码) 
按照ShortcutInfo中的hotseatOrder属性,hotseatOrder是一个整型数
private ArrayList<ShortCutInfo> mRelaItems = new ArrayList<ShortCutInfo>();
...
MyComparator myComparator = new MyComparator();
Collections.sort(mRelaItems, myComparator);

class MyComparator implements Comparator<ShortCutInfo> {

@Override
public int compare(ShortCutInfo object1, ShortCutInfo object2) {
// TODO Auto-generated method stub
if (object1.hotseatOrder < object2.hotseatOrder)
return 1;

return 0;
}

}

但是排序之后 mRelaItems没有变化 排序无效
请大家指教
多谢!!

还有 我这样写是按照从大到小排序呢还是从小到大排呢?

------解决方案--------------------
我调试了一下你的代码,没什么问题,可以实现排序,结果是从大到小,下面是我写的代码
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

public class Demo {

public static void main(String[] args) {
ArrayList<ShortCutInfo> mRelaItems = new ArrayList<ShortCutInfo>();
mRelaItems.add(new ShortCutInfo(1));
mRelaItems.add(new ShortCutInfo(12));
mRelaItems.add(new ShortCutInfo(3));
mRelaItems.add(new ShortCutInfo(7));
mRelaItems.add(new ShortCutInfo(2));

MyComparator myComparator = new MyComparator();
Collections.sort(mRelaItems, myComparator);
for(ShortCutInfo c : mRelaItems) {
System.out.println("======" + c.hotseatOrder + "======");
}
}
}

class MyComparator implements Comparator<ShortCutInfo> {
@Override
public int compare(ShortCutInfo object1, ShortCutInfo object2) {
if (object1.hotseatOrder < object2.hotseatOrder)
return 1;

return 0;
}

}

输出结果:

======12======
======7======
======3======
======2======
======1======