我想知道是否有可能为单个类实现更多的Comparables。
我必须先按整数字段对arraylist进行排序,然后在程序的另一部分中按另一个字段对它进行排序。
我该怎么做?我想到了一个自定义比较器,但是没有用。
public void OrderbyColours(ArrayList<Horses> scuOrderedByColours,
ArrayList<Horses> ArrayScud) {
scuOrderedByColours.addAll(ArrayScud);
Collections.sort(scuOrderedByColours, new Comparator<Horses>() {
public int compare(Horses o1, Horses o2) {
return o1.Position - o2.Position;
}
});
}
最佳答案
假设比较器不起作用(我很好奇它们如何不起作用),或者您根本不想使用它,则可以编写一个包装类,该包装类具有原始类的实例作为数据。
例如
public class HorsesWrapper implements Comparable<HorsesWrapper>
{
private Horses horses;
public int compareTo(HorsesWrapper other)
{
// your sort criteria based on the Horse member.
}
}