基本上想将 Stations 类型的对象(站名的字符串表示)存储为数组中的字母顺序。但是我无法修改站类以使其具有可比性,因为它已为我预定义。是否有任何其他方法可以将类型站点的数组列表按字母顺序排序,而无需实现比较器接口(interface)或使用 collections.sort()
最佳答案
由于最初的问题是基于误解,这里是解决方案,确实使用Comparator
接口(interface)和Collections.sort
,但它不会修改原来的 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
对站点进行排序:
List<Station> stations = /* ... */;
Collections.sort(stations, new StationByNameComparator());
关于java - 是否可以在不使用比较器接口(interface)的情况下对数组列表/哈希集进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23932811/