这是我的情况:我有一个数组 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[][]
时,其中的一些值为空。最大的问题是我不能 100% 地重复它,因为对我来说,它看起来是“随机”的,哪个值是空的,如果有的话是空的。某些情况下没有空值,而其他情况下则存在“随机”空值。使用 arraycopy
的第一种方法不会导致任何问题。
对于什么可能导致这种奇怪的行为有什么建议吗?
最佳答案
问题似乎是您的 finalAnswerChoices2.length
与 widebodies.length
或 finalAnswerChoices2[0].length
不同(较大)与 6
不同。因此,finalAnswerChoices2
数组仍将包含数组初始化中的 0
值(默认),而这些位置是循环无法到达的。
关于java - 随机数组值为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37121285/