【发布时间】:2016-05-07 16:43:17
【问题描述】:
我试图了解可比较的 compareTo 方法如何对输入进行排序。下面是实现的compareTo方法:
@Override
public int compareTo(Name n) {
int lastCmp = lastName.compareTo(n.lastName);
return (lastCmp != 0 ? lastCmp : firstName.compareTo(n.firstName));
}
Collections.sort 方法的输入数组是:
Name nameArray[] = {
new Name("John","Smith"),
new Name("Karl","Ng"),
new Name("Jeff","Smith"),
new Name("Tom","Rich")
};
List<Name> names = Arrays.asList(nameArray);
Collections.sort(names);
我不明白 compareTo 方法采用了哪些值。 (n.lastName 和 lastname)按什么顺序?
【问题讨论】:
-
Collections 排序方法根据您的 compareTo 方法对您的 Name 数据进行排序。 compareTo 方法根据需要对两个 Name 实例调用多次,直到对所有 Name 实例进行排序。在您的 4 个实例示例中,compareTo 方法可以被调用多达 6 次。
标签: java sorting collections comparable