数组的初始化

时间:2017-01-04 17:29:28

标签: java arrays

我在维度n上声明了一个数组,其中n是数组可以包含的最大元素数:

int array[] = new int [n];

我有一个算法,用0到maxValue的值填充此数组。例如:

   array[0] = 0;
    array[1] = 1;
    array[2] = 4;
    array[3] = 5;

如果我用:

打印数组,则设n = 8
System.out.println("array " + Arrays.toString(array));

我将得到这个输出:

0 1 4 5 0 0 0 0

如果我想检查数组中是否有值0,我该如何排除从数组初始化得到的值?基本上我只想考虑0 1 4 5而不是0 1 4 5 0 0 0 0。

这可以解释,因为如果我有一个不带值0的数组,例如:

    array[0] = 3;
    array[1] = 1;
    array[2] = 4;
    array[3] = 5;

数组中未分配的每个元素都是0.因此对于n = 8,我将有3 1 4 5 0 0 0 0并且如果我检查值0是否在数组中,我将收到正。

3 个答案:

答案 0 :(得分:4)

你基本上不能 - 不仅仅基于数组本身。 显式设置为0的值与默认为0的值之间没有区别。

您可以将数组更改为Integer[]类型 - 然后您就没有明确初始化的任何值null。但是,您无法区分这些默认值并明确将数组元素设置为null ...

答案 1 :(得分:1)

您可以将数组值初始化为"超出范围"让我们说-1。然后你就能分辨出来了。

答案 2 :(得分:0)

保留计数器变量以跟踪您已分配的索引数量。然后,您可以使用此计数器循环索引,以仅检查初始化的索引。这假设您正在逐步将值分配到索引中。

相关问题