Java 求二维数组的长度
如果我不知道数组的第二维度,如何得到它<代码>数组。长度仅给出第一个维度 例如,在Java 求二维数组的长度,java,arrays,Java,Arrays,如果我不知道数组的第二维度,如何得到它数组。长度仅给出第一个维度 例如,在 public class B { public static void main(String [] main){ int [] [] nir = new int [2] [3]; System.out.println(nir.length); } } 如何获得nir的第二维度的值,即3 谢谢哪3个 您已经创建了一个多维数组nir是一个int数组数组;有两个长度为3的数组
public class B {
public static void main(String [] main){
int [] [] nir = new int [2] [3];
System.out.println(nir.length);
}
}
如何获得nir
的第二维度的值,即3
谢谢哪3个
您已经创建了一个多维数组nir
是一个int数组数组;有两个长度为3的数组
System.out.println(nir[0].length);
将给出第一个数组的长度
另外值得注意的是,您不必像以前那样初始化多维数组,这意味着所有数组不必具有相同的长度(或者根本不存在)
第一维度的每个元素实际上是另一个长度与第二维度相同的数组。您可以执行以下操作:
System.out.println(nir[0].length);
但是请注意,Java中没有真正的二维数组。每个“第一级”数组包含另一个数组。每个阵列都可以有不同的大小<代码>nir[0]。长度不一定与nir[1]的大小相同。长度
nir[0].length
注意0:阵列中必须至少有一个阵列。注1:并非所有子数组都必须具有相同的长度。假设第二维中每个数组的长度相同,则可以使用
public class B {
public static void main(String [] main){
int [] [] nir= new int [2] [3];
System.out.println(nir[0].length);
}
}
使用
请看这个for循环,它打印二维数组的内容
第二个循环遍历每行中的列
for(int row =0 ; row < ntr.length; ++row)
for(int column =0; column<ntr[row].length;++column)
System.out.print(ntr[row][column]);
for(int行=0;行 对于(int column=0;column请记住,2D array
不是真正意义上的2D array
。数组本身的每个元素都是数组,不一定大小相同。
因此,nir[0]。长度
可能等于也可能不等于nir[1]。长度
或nir[2]长度
nir[0].length
希望对…有所帮助:)扩展多维数组总长度
通常情况下,因为2D阵列的形状是“平方”的
但是,对于二维数组,每行的元素数可能不完全相同。
因此,我们需要遍历每一行,增加元素的数量
int length = 0;
for ( int lvl = 0; lvl < _levels.length; lvl++ )
{
length += _levels[ lvl ].length;
}
int-length=0;
对于(int lvl=0;lvl<_levels.length;lvl++)
{
长度+=\U级[lvl]。长度;
}
如果是N-D数组,这意味着我们需要N-1 for循环来获得每一行的大小。这里有一个完整的解决方案,介绍如何在一个锯齿状的二维数组中枚举元素(有3行和3到5列):
字符串行=”;
int[]myArray={{11,12,13},{14,15,16,17},{18,19,20,21,22};
对于(int i=0;i,在最新版本的JAVA中,您可以这样做:
nir.length //is the first dimension
nir[0].length //is the second dimension
//初始化几个值
int[][]选项卡=新建int[][]{
{1,0,1,0,1,0,1,0},
{0,1,0,1,0,1,0,1},
{1,0,1,0,1,0,1,0},
{0,1,0,1,0,1,0,1},
{1,0,1,0,1,0,1,0},
{0,1,0,1,0,1,0,1},
{1,0,1,0,1,0,1,0},
{0,1,0,1,0,1,0,1}
};
//tab.1第一个循环中的长度
对于(int row=0;row
注意,如果尚未创建二维数组,则可能引发空指针异常;打印前应选中ntr[row]!=null
。+1特别是关于非矩形的危险建议(我的意思是对数据进行假设是危险的,而不是使用非矩形是危险的)。这愚弄了许多新手程序员,也愚弄了许多本该更了解的非新手程序员!因此本质上,int[]nir=new int[2][3];
中的3
是假的(没有实际用途).Right???或者它用于在每行分配3个单元格-每行中默认的列数???@KNU如果您使用明确定义第二维度为3的语法,那么您将得到每个数组的长度。我回答的第二部分只是指出您不必使用该语法。您可能需要特别指出,如何获得内部数组的长度。此外,一般情况下,建议计算当前行列int length = nir.length * nir[0].length;
int length = 0;
for ( int lvl = 0; lvl < _levels.length; lvl++ )
{
length += _levels[ lvl ].length;
}
String row = "";
int[][] myArray = {{11, 12, 13}, {14, 15, 16, 17}, {18, 19, 20, 21, 22}};
for (int i=0; i<myArray.length; i++) {
row+="\n";
for (int j = 0; j<myArray[i].length; j++) {
row += myArray[i][j] + " ";
}
}
JOptionPane.showMessageDialog(null, "myArray contains:" + row);
nir.length //is the first dimension
nir[0].length //is the second dimension
//initializing few values
int[][] tab = new int[][]{
{1,0,1,0,1,0,1,0},
{0,1,0,1,0,1,0,1},
{1,0,1,0,1,0,1,0},
{0,1,0,1,0,1,0,1},
{1,0,1,0,1,0,1,0},
{0,1,0,1,0,1,0,1},
{1,0,1,0,1,0,1,0},
{0,1,0,1,0,1,0,1}
};
//tab.length in first loop
for (int row = 0; row < tab.length; row++)
{
//tab[0].length in second loop
for (int column = 0; column < tab[0].length; column++)
{
//printing one value from array with space
System.out.print(tab[row][column]+ " ");
}
System.out.println(); // new row = new enter
}