是否可以在不使用比较器接口的情况下对arraylist / hashset进行排序?

时间:2014-05-29 11:58:47

标签: java sorting comparator

基本上希望将类型为Stations的对象(站名称的字符串重新表示)存储为数组的字母顺序。但我不能修改电台类,以使其与我预定义的可比性。是否有任何其他方法可以按字母顺序对类型站的数组列表进行排序,而无需实现比较器接口或使用collections.sort()

2 个答案:

答案 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
    }
});