gpt4 book ai didi

java - 将 ArrayList 转换为 double[][]

转载 作者:行者123 更新时间:2023-12-01 21:28:27 26 4
gpt4 key购买 nike

我有一个数组列表,其中每个元素都是一个 double[1][3] 列表。现在,如果数组列表包含 n 个成员,我希望输出是大小为 double[n][3] 的列表。基于this post我尝试了以下方法:

ArrayList<double[][]> testArray = new ArrayList<double[][]>();
double [][] testList = new double[testArray.size()][];
for(double [][] temp : testArray){
// temp is a list?
}

我还尝试了以下方法:

double [][] test = new double[testArray.size()][3];
test = testArray.toArray(test);

他们都不为我工作。任何帮助将非常感激。谢谢。

最佳答案

如果列表中的所有数组的第一维大小都等于 1,那么您可以尝试:

ArrayList<double[][]> testArray = new ArrayList<double[][]>();
int testArraySize = testArray.size();
double [][] testList = new double[testArraySize][];

for (int i = 0; i < testArraySize; i++) {
testList[i] = testArray.get(i)[0];
}

我认为这非常简单,所以我只对此发表评论:

get(i)[0]

这从列表中获取第 i 个元素,这是一个二维数组,然后调用 [0] 运算符来访问我们想要的第二个维度复制到目标数组。这一切都在要求列表中数组的第一维大小等于 1 的情况下工作。

// temp is a list?

不,它是一个二维数组 - 它是一个列表元素。

在这种情况下,您的第二个代码段没有机会工作,因为 toArray 创建一个数组,其中每个数组元素都是列表中的元素,因此将创建三维数组。但如果您要使用该方法,那么您必须提供一维数组作为该方法的参数(不是二维),因为 toArray 接受并返回一维数组。在您的情况下,这将是一维数组,其中每个元素都是一个二维数组,这会导致三维数组,这不是您想要的。

关于java - 将 ArrayList<double[][]> 转换为 double[][],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37733081/

26 4 0