由于这两个值紧密耦合在一起,我实际上会编写一个自定义类来包含信息,然后对这些类进行排序,而不是使用原始数组.这样做会让你对许多可能的错误开放.
这样可以更好地控制,数据封装以及将来可能包含哪些方法或数据的扩展.
public class MyDistance implements Comparable {
private String placename;
private double mileage;
public MyDistance(String placename, double milage) {
this.placename = placename;
this.milage = milage;
}
public String getPlacename() {
return this.placename;
}
public double getMilage() {
return this.milage;
}
@Override
public int compareTo(MyDistance anotherDistance)
{
return milage.compareTo(anotherDistance.getMilage());
}
}
如果您希望在排序方面有更大的灵活性,那么您可以编写自定义Comparator< MyDistance>而不是让您的MyDistance类实现Comparable.类:
public class DistanceComparator extends Comparator {
@Override
public int compare(MyDistance dist1, MyDistance dist2) {
return dist1.getMilage().compareTo(dist2.getMilage());
}
}
您可以使用此比较器使用集合进行排序:
List distanceList = getDistanceListSomehow();
Collections.sort(distanceList, new DistanceComparator());
您不仅限于List,我只是将其用于解释目的.您应该查看Java Collections types的全部范围,以便最好地选择适合您目的的一个.但作为建议,ArrayList类型易于使用并保留您想要的顺序.