答案 0 :(得分:0)
在您的代码中执行此操作:
int [] array1 = new int [20];
你要说的是,初始化array1时将0作为所有的默认值。
现在,如果你只输入10个值,那么10个值中的其余值将为零。因此,当排序时... 0小于1时,它首先出现..
清楚?
答案 1 :(得分:0)
如果零是您的问题,请不要使用常量值初始化数组(" 20",在您的示例中)。
只需将您的扫描代码更改为:
Scanner scanner = new Scanner(new File("C:/text.txt"));
ArrayList<Integer> array1 = new ArrayList<Integer>();
while(scanner.hasNextInt() ){
array1.add(scanner.nextInt());
}
此外,您需要将ArratList转换为int数组。以下代码将提供帮助(复制自:How to convert an ArrayList containing Integers to primitive int array?):
public static int[] convertArrayListToIntArray(List<Integer> integers)
{
int[] ret = new int[integers.size()];
Iterator<Integer> iterator = integers.iterator();
for (int i = 0; i < ret.length; i++)
{
ret[i] = iterator.next().intValue();
}
return ret;
}