数组为零值

时间:2016-10-20 16:46:37

标签: java arrays sorting

如果导入整数为5 2 1 12 2 10 4 13 5

然而,输出显示许多" 0"如果数组大小(现在20)。

结果:

enter image description here

因此,我可能会问哪些部分出错了以及解决零部件的任何解决方案。

2 个答案:

答案 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;
}