gpt4 book ai didi

java - 编写一个对数字 ArrayList 进行排序的方法

转载 作者:行者123 更新时间:2023-12-01 20:16:58 25 4
gpt4 key购买 nike

摘自梁的《Java 编程入门》(第 10 版):

练习13.3:编写以下方法对数字的 ArrayList 进行排序。

public static void sort(ArrayList<Number> list)

我的代码:

public static void sort(ArrayList<Number> list) {

Number temp = 0;

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

在 main 方法中,我实例化了一个由 Numbers 和一些任意值组成的 ArrayList:[7, 1, 3.14, -5, 2, 5.187, 9, 6.6667, 4.1]

使用排序方法后的输出:[-5, 9, 7, 6.6667, 5.187, 3.14, 2, 1, 4.1](这显然是不正确的)。

已经很晚了,我无法弄清楚我在这个问题上到底做错了什么。如果有人能指出我犯的逻辑错误,这将有助于节省大量时间。谢谢!

最佳答案

这应该可以做到:

public static void sort(ArrayList<Number> list) {

Number temp = 0;

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

关于java - 编写一个对数字 ArrayList 进行排序的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45588226/

25 4 0