的Java分配二维arrayto三维阵列

问题描述:

我有下面的代码,这似乎编译:的Java分配二维arrayto三维阵列

int[] arr = {1, 2}; 
int[][] arr2 = {arr, {1, 2}, arr}; 
int[][][] arr3 = {arr2}; 

能否请您解释一下为什么上次语句的工作?我们不要在这里为二维数组分配一个三维数组吗?

感谢

不要我们分配一个二维数组来这里三维阵列?

如果你这样做

int[][][] arr3 = arr2; 

但你在这里做什么int[][][] arr3 = {arr2};不分配你是正确的。你正在创建一个包含元素的数组。

添加一个元素并分配引用是两件不同的事情。

这很有效,因为在你的数组arr3你有一个二维数组在行零和列零这很好。

Inshort

int[][][] arr3 = {arr2}; 

是等于

int[][][] arr3 = new int[10][10][10]; 
arr3[0] = arr2;