java - Arrays.sort 函数如何工作?
问题描述
我是 Java 编程新手,我正在尝试使用Arrays.sort()函数对数组进行排序。使用Arrays.sort(array)后,我正在打印最终的排序数组。
例如:
输入:1 3 2 4
输出为: 0 0 0 0。
import java.io.*;
import java.util.Scanner;
import java.util.Arrays;
public class TestClass {
public static final int MAX_SIZE = 20;
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n,temp,count;
int[] array = new int[MAX_SIZE];
n = input.nextInt();
for(int i = 0 ; i < n ; ++i) {
array[i] = input.nextInt();
}
Arrays.sort(array);
for(int i = 0 ; i < n ; ++i) {
System.out.print(array[i]+" ");
}
}
}
解决方案
您已将数组初始化为包含 20 个整数,但您只输入了 5 个。因此,前 15 个元素将是 0,然后是数组排序后输入的数字。
要解决此问题,您可以使用n
而不是MAX_SIZE
如下所示初始化数组:-
n = input.nextInt();
int[] array = new int[n];
推荐阅读
- haskell - 堆栈:'hdevtools 是一个库依赖项,但由于 my-app 是构建目标,因此该包不提供所需的库。
- python - 为什么我的代码不能使日期时间对象识别时区?
- windows - 查找当前 CMD 窗口的 conhost.exe 进程的 PID
- php - 如何将函数移动到另一个文件
- react-native - 反应原生 SafeAreaView 背景图像?
- java - 计算字符串的结尾
- python - python中的硒:TimeoutException
- go - Go 是否支持嵌套类型声明或对匿名结构的文字赋值?
- c++ - 链表c ++插入,所有情况都检查但没有任何效果
- function - wxMaxima 求解 sin 函数