当前位置: 代码迷 >> Android >> java 应用comparator接口对ArrayList排序无效
  详细解决方案

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

热度:43   发布时间:2016-05-01 13:06:40.0
java 使用comparator接口对ArrayList排序无效
我想对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;    }}
  相关解决方案