gpt4 book ai didi

java - 如何制作通用比较器方法

转载 作者:行者123 更新时间:2023-12-01 11:41:55 25 4
gpt4 key购买 nike

我有一个实用程序类,我想要一个通用的排序方法,以便将任何类型的 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);
}
};

最佳答案

要完成您想要做的事情,您需要一个类型来确保存在 getDistance() 方法。它可以是抽象类或接口(interface)。无论它是什么,我都将其称为 HasDistance。

public static void sortAsc(ArrayList<? extends HasDistance> list) {
Collections.sort(list, ascOrder);
}

private static Comparator<HasDistance> ascOrder = new Comparator<>() {

public int compare(HasDistance arg0, HasDistance arg1) {
return Float.compare(arg0.getDistance(), arg1.getDistance());
}
};

关于java - 如何制作通用比较器方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29457984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com