gpt4 book ai didi

Java:如何在一维数组中存储二维数组

转载 作者:行者123 更新时间:2023-12-02 05:26:34 25 4
gpt4 key购买 nike

我尝试将已经找到的二维数组存储到一维数组中,以便以后更快地处理。但是,当我尝试填充一维数组时,我不断收到 nullPointerException。发生的情况是 txt 文件具有我们首先读取的行数和列数,以获取用于执行 2D 数组的行数和列数。然后,每个索引读取 txt 文件上的下一个数据元素并将其存储在该索引处,直到存储完所有 50 000 个整数值。效果很好。

现在我想获取该 2D 数组并将所有元素存储到 1D 数组中,以便稍后在查找答案时更快地处理,而不使用数组列表或将它们按顺序排列,这很好,

int [][] data = null; 
int[] arrayCount = null;

for (int row = 0; row < numberOfRows; row++)
{
for (int col = 0; col < numberOfCols; col++)
{
data[row][col] = inputFile.nextInt();
}
}
//Doesn't Work gives me excpetion
data[0][0] = arrayCount[0];

我在 for 循环中尝试了这个,但无论如何我都会得到一个 NullPointerException

最佳答案

您尚未初始化 dataarrayCount 变量,请按如下方式初始化:

int[][] data = new int[numberOfRows][numberOfCols];
int[] arrayCount = new int[numberOfRows * numberOfCols];

在您的情况下,要从 2D 数组复制到一维数组,您可以使用如下内容:

    numberOfRows = data.length;
if (numberOfRows > 0) {
numberOfCols = data[0].length;
} else {
numberOfCols = 0;
}

System.out.println("numberOfRows : "+numberOfRows);
System.out.println("numberOfCols : "+numberOfCols);

for (int row = 0, count = 0; row < numberOfRows; row++) {
for (int col = 0; col < numberOfCols; col++) {
arrayCount[count] = data[row][col];
count++;
}
}

关于Java:如何在一维数组中存储二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25956756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com