随机数组值为空

时间:2016-05-09 16:51:23

标签: java arrays null

以下是我的情况:我有一个数组answerChoices[][],我根据answerChoices[][]中的值创建了2个新数组。第一个finalAnswerChoices1[][]创建为:

System.arraycopy(answerChoices, 0, finalAnswerChoices1, 0, finalAnswerChoices1.length);并且行为符合预期。但是,对于我的第二个数组,我只需要answerChoices[][]中的特定元素,我就像这样创建最终数组:

for (int x = 0; x < widebodies.length; x++) {
     for (int y = 0; y < 6; y++) {
          finalAnswerChoices2[x][y] = answerChoices[widebodies[x]][y];
           }
     }

widebodies是一个整数数组。

我的问题是:当第二个方法用于创建finalAnswerChoices2[][]时,其中的一些值为null。最大的问题是我不能100%重复它,因为对我而言,它似乎是“随机的”,哪个值为null,如果有的话为null。某些情况下没有空值,而其他情况则存在“随机”空值。使用arraycopy的第一种方法不会引起任何问题。

有什么可能导致这种奇怪行为的建议?

2 个答案:

答案 0 :(得分:1)

问题似乎是finalAnswerChoices2.length与[{1}}或widebodies.length的{​​{1}}不同(更大)与finalAnswerChoices2[0].length不同。因此,6数组将包含数组初始化中的finalAnswerChoices2值(默认值),即循环无法到达的位置。

答案 1 :(得分:0)

我认为,如果ansquerChoices[][]是2x3(例如)而widebodies[]有,例如,当尝试访问answerChoices[10][y]时,整数10将是一个例外。而是返回null。 我希望这可以帮助你解决问题,问候。