gpt4 book ai didi

java - 使用不带比较的快速排序对 ArrayList 中的对象进行排序

转载 作者:太空宇宙 更新时间:2023-11-04 09:14:31 30 4
gpt4 key购买 nike

我正在尝试使用快速排序对 ArrayList 中的对象进行降序排序。我不想使用java为类提供的Comparable接口(interface)。在对象中,Team 类中有一个平均方法,我想用它来对对象进行排序。

下面我在 main 方法中实现了一个冒泡排序算法,它最终工作得很好。我使用此方法而不是快速排序的原因是它需要诸如 partitionsort 之类的方法。我遇到的主要问题是将我需要的方法从 Team 类访问到 BubbleSort 类。我尝试过 BubbleSort 扩展 Team,但遇到的问题是它要求我向源自 Team 类的 BubbleSort 类提供参数。 有没有办法让我提供这些论点? 我还可以采取哪些其他方法?

for (int i = 0; i < team.size() - 1; i++) {
for (int j = 0; j < team.size() - i - 1; j++) {
if (team.get(j).getAverage() < team.get(j + 1).getAverage()) {
Team temp = team.get(j);
team.set(j, team.get(j + 1));
team.set(j + 1, temp);
}
}
}

这是一个repl.it到目前为止的计划。

最佳答案

您可以使用Comparator通过比较getAverage()方法来进行自定义排序

查看此 QuickSort 实现:https://pdfbox.apache.org/docs/1.8.13/javadocs/org/apache/pdfbox/util/QuickSort.html

它使用listComparator作为排序参数。你可以直接使用它。

QuickSort.sort(team, (t1, t2) -> Double.compare(t1.getAverage(), t2.getAverage());

关于java - 使用不带比较的快速排序对 ArrayList 中的对象进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59229709/

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