gpt4 book ai didi

java - 分配Java类的二维数组

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

这工作得很好。

test [][] matrix = new test[5][];

for(int i =0 ; i < 5 ; i++)
{
matrix[i] = new test[5];
for(int j = 0 ; j< 5 ; j++)
matrix[i][j] = new test();
}

这不起作用

for(test[] t: matrix)
{
t = new test[5];
for(test t2: t)
t2 = new test();
}

这正在工作

int[][] matrix2 = new int[5][5];

根本不需要初始化

问题是为什么?

最佳答案

因为您要分配给局部变量而不是矩阵的元素。

for(test[] t: matrix) {
t = new test[5]; // You are assiging to a local variable
// t is a local variable!
}

为了让它更明显:

for(int i = 0; i < matrix.length; i++) {
test[] t = matrix[i]; // t is obviously a local variable.

// This will assign a new array to the local variable t:
t = new test[5];

// matrix[i] is still null, to prove it:
System.out.println(matrix[i]); // Prints "null"
}

关于java - 分配Java类的二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24956971/

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