基本上希望将类型为Stations的对象(站名称的字符串重新表示)存储为数组的字母顺序。但我不能修改电台类,以使其与我预定义的可比性。是否有任何其他方法可以按字母顺序对类型站的数组列表进行排序,而无需实现比较器接口或使用collections.sort()
答案 0 :(得分:3)
由于最初的问题是基于误解,因此 使用Comparator
界面和Collections.sort
的解决方案,但它不会修改原始{ {1}}课程。首先,我们有一个我们无法修改的课程Station
。
Station
在我们自己的代码中,我们可以定义一个新类:
public final class Station {
private final String name;
public String getName() { return name; }
}
班级public class StationByNameComparator implements Comparator<Station> {
@Override
public int compare(Station left, Station right) {
String leftName = left.getName();
String rightName = right.getName();
return leftName.compareTo(rightName);
}
}
可以保留原样。现在我们可以使用Station
对电台进行排序:
Collections.sort
答案 1 :(得分:1)
作为占位符,直到Artur的答案未被删除:
您可以在课堂外实施Comparator
:
Collections.sort(listOfStations, new Comparator<Stations>() {
public int compare(Stations s1, Stations s2){
// logic here
}
});