数组中的数组 - Java



好的,所以我有一个返回数组的 2D 数组。

Object[][] sample = new Object[1][1];
//ok just imagine sample already has an array inside of it

如何检索二维数组中的数组?

我尝试创建一个带有值的新数组,

object[] = sample[0][0];

但它只会产生错误。

当我打印的值

sample[0][0]

它返回值:[[Ljava.lang.Object;@4e25154f

我不知道如何解决这个问题。

sample[0][0] Object不是int[]sample[0]可以是一维数组或任何Object,请注意数组在Java中也是Object的。

要打印多维数组,您可以使用Arrays.deepToString(twoDarray)但是如果您专门存储了Object,则此功能不起作用。

此外,[[Ljava.lang.Object;@4e25154f是默认表示存储在sample[0][0]Object toString的结果,我认为这是一个数组。要打印阵列,您可以使用Arrays.toString(int[]) .

我想 这就是你想做的,

Object[][] obj = new Object[1][1];
obj[0][0] = new int[]{0,1,0,2};
System.out.println(obj);
//To get int[]
int[] arr= (int[]) obj[0][0];//Need to cast to the int[] specifically
//because it's currently stored as an Object
System.out.println(Arrays.toString(arr));

输出

[[Ljava.lang.Object;@1db9742
[0, 1, 0, 2]

sample[0][0] 返回的对象不是 int。首先你需要向下投射它,然后检索整数值

例如:-

CustomObject co = (CustomObject)sample[0][0]; // downcast here

然后从自定义对象中检索必填字段

相关内容

  • 没有找到相关文章

最新更新