你是这样做的吗?好吧,请注意有一些变化。
List<MyClass> myVector = new Vector<MyClass>();
myVector.add(myClass1);
myVector.add(myClass2);
myVector.add(myclass3);
Collections.sort(myVector, new Comparator<MyClass>() {
public int compare(MyClass one, MyClass two) {
return Double.valueOf(one.getDistance()).compareTo(two.getDistance());
}
});
List
在分配的左侧使用 a ,因为您应该始终针对接口进行编程。
- 我已将 getter 和 setter 方法添加到您的
MyClass
.
然而,另一种选择是让你的班级Comparable
.
class MyClass implements Comparable<MyClass> {
private double distance;
private String name;
@Override
public int compareTo(MyClass other) {
return Double.valueOf(this.distance).compareTo(other.distance);
}
...
getters and setters
...
}
然后你可以简单地写Collections.sort(myVector)
.