正如其他人所说,如果你想使用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 中对象排序的参考。