正如其他人所说,如果你想使用Collections.sort(),你必须Transition实现Comparable接口,这意味着包含一个.compareTo()并将你的类头修改为:
public class Transition implements Comparable<Transition>
或者,您可以这样做:
Collections.sort(transitions, new Comparator<Transition>() {
@Override
public int compareTo(Transition t1, Transition t2) {
return t1.getDoubleValue().compareTo(t2.getDoubleValue());
}
});
wheregetDoubleValue()只是我用来表示您的Transition类中的一个方法的名称,该方法返回Double您在帖子中引用的方法。如果您不想使用Double,那么您可以编写.compareTo()如下(注意:使用条件三元运算符代替 if 语句):
@Override
public int compareTo(Transition t1, Transition t2) {
return t1.getDoubleValue() > t2.getDoubleValue() ? 1 :
t1.getDoubleValue() < t2.getDoubleValue() ? -1 : 0;
}
这是Java 中对象排序的参考。