【发布时间】:2015-04-05 13:48:56
【问题描述】:
我有一个实用程序类,我希望有一个通用的排序方法,以便将任何类型的 arrayList 传递给下面发布的这个静态方法, 将被排序。
当我写下面的代码时,eclipse要求添加未实现的方法,当我接受添加它们时,我发现它们太多了,我 不知道应该用哪个
代码:
public static <T> void sortAsc(ArrayList<T> list) {
Collections.sort(list, ascOrder);
}
private static Comparator<T> ascOrder = new Comparator<T>() {
public int compare(DMatch arg0, DMatch arg1) {
// TODO Auto-generated method stub
return Float.compare(arg0.distance, arg1.distance);
}
};
【问题讨论】:
-
我不确定我是否完全理解你——你想编写一个辅助方法来获取任何类型的列表并对其进行排序?通过什么?
-
@yes,例如“距离”
-
您使用的是 Java 8 吗?如果是这样,请查看接口
Comparator。它现在包含许多返回Comparator<T>的静态方法。在您的示例中,您必须输入Collections.sort(list, Comparator.comparingDouble(x->x.distance))或其他内容。 -
如果没有类型限制,你怎么知道对象包含距离属性?
-
Java 8 中的
Comparator接口已经为这类事情提供了许多实用方法。例如,您可以这样做Collections.sort(list, Comparator.comparing(DMatch::getDistance)));
标签: java list arraylist comparator