我正在尝试对数组的整数进行排序,但是我一直在尝试错误。我试过sort(数组);的Array.Sort(); Arrays.sort(数组);和Arrays.sort();但没有任何作用。帮助将不胜感激。我得到的这个Arrays.sort(数组)的错误是找不到符号,符号变量Arrays location:class Main
public static void main(String[] args) {
int[] array = new int[20];
array = fillArray(array);
printArray(array);
array = sortArray(array);
printArray(array);
}
public static int[] fillArray(int[] array) {
for (int i = 0; i < array.length; i++) {
array[i] = (int) (1 + Math.random() * 99);
}
return array;
}
public static void printArray(int[] array) {
for (int i = 0; i < array.length; i++) {
if (i > 0) {
System.out.print(" | ");
}
System.out.print(array[i]);
}
}
public static int[] sortArray(int[] array) {
Arrays.sort(array);
return array;
}
}
答案 0 :(得分:2)
您的代码确实有效。 (它确实对数组进行排序。)我相信你的困惑可能是因为printArray
的未排序和排序的输出一起出现在同一行上,很难看到。在printArray
方法的末尾添加换行符,结果将被清除:
System.out.println();
现在的输出是(例如):
78 | 42 | 88 | 11 | 40 | 64 | 37 | 78 | 42 | 35 | 77 | 33 | 33 | 5 | 89 | 12 | 32 | 86 | 24 | 79
5 | 11 | 12 | 24 | 32 | 33 | 33 | 35 | 37 | 40 | 42 | 42 | 64 | 77 | 78 | 78 | 79 | 86 | 88 | 89
编辑:根据您现在提供的错误消息,问题是Arrays
是java.util
包中的类,并且您尚未导入类或对其的限定访问权限。将此行放在文件的顶部:
import java.util.Arrays;
或,当您调用该方法时,请使用所谓的“完全限定名称”:
java.util.Arrays.sort(array);
有关详细信息,请参阅Java教程中的Using Package Members。
答案 1 :(得分:0)
实际上,您使用的代码正在运行。
您可以在main方法中进行一些更改,以便更清晰地在控制台中打印阵列。
像
System.out.println("Before sorting...");
printArray(array);
array = sortArray(array);
System.out.println("\nAfter sorting...");
printArray(array);
运行示例如下:
Before sorting...
47 | 68 | 94 | 17 | 99 | 60 | 92 | 61 | 44 | 99 | 64 | 37 | 15 | 79 | 38 | 52 | 77 | 41 | 62 | 88
After sorting...
15 | 17 | 37 | 38 | 41 | 44 | 47 | 52 | 60 | 61 | 62 | 64 | 68 | 77 | 79 | 88 | 92 | 94 | 99 | 99