我想对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没有变化 排序无效
请大家指教
多谢!!
还有 我这样写是按照从大到小排序呢还是从小到大排呢?
------解决方案--------------------
我调试了一下你的代码,没什么问题,可以实现排序,结果是从大到小,下面是我写的代码
- Java code
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; }}