【发布时间】:2013-07-13 11:54:04
【问题描述】:
我正在尝试使用可比较的接口对对象的 ArrayList 进行排序:
public class Unit implements Comparable<Unit>{
// attributes
int position;
@Override
public int compareTo(Unit other) {
return Integer.compare(position, other.position);
}
}
现在我使用以下方法对 ArrayList 进行排序:
List<Unit> units = getAllUnits();
Collections.sort(units);
上面将从position 0开始对所有单位进行排序,但我希望它从position 1开始,因为position的默认值是zero。
如何修改compareTo 方法?
【问题讨论】:
-
我的解释(这个不清楚的问题)是否正确:您希望所有的零都在末尾吗?
-
是的,我希望所有的零都在末尾。
-
所以你希望它从高到低排序而不是从低到高?不清楚要问什么
-
@chancea:不,我只希望排序从 1 开始,我希望所有的零都出现在末尾。
-
在另一个返回之前插入
if (this.position == 0) return 1;。