📅  最后修改于: 2023-12-03 14:52:46.066000             🧑  作者: Mango
在Java中,我们有时需要获取二维数组的维度。本篇文章将介绍Java中获取二维数组维度的几种方法。
我们都知道,在Java中使用length属性获取一个数组的大小。对于二维数组,length属性返回的是第一维的大小。
示例代码:
int[][] arr2D = new int[3][4];
int length = arr2D.length; // 获取第一维的大小,即3
如果想要获取第二维的大小,需要对每个子数组再次使用length属性。
示例代码:
int[][] arr2D = new int[3][4];
int length0 = arr2D[0].length; // 获取第一维的大小,即4
int length1 = arr2D[1].length; // 获取第一维的大小,即4
int length2 = arr2D[2].length; // 获取第一维的大小,即4
Java的Arrays类提供了一个方法public static int[] copyOf(int[] original, int newLength)
,可以简单地将一个一维数组复制到一个更长或更短的一维数组中。使用该方法可以获取二维数组的第二维大小。
示例代码:
int[][] arr2D = new int[3][4];
int length0 = Arrays.copyOf(arr2D[0], 0).length; // 获取第一维的大小,即4
int length1 = Arrays.copyOf(arr2D[0], 0).length; // 获取第一维的大小,即4
int length2 = Arrays.copyOf(arr2D[0], 0).length; // 获取第一维的大小,即4
Java的反射机制可以用来动态地获取类的信息,包括数组的信息。使用反射可以获取二维数组的两个维度大小。
示例代码:
int[][] arr2D = new int[3][4];
int length0 = arr2D.getClass().getDeclaredField("length").getInt(arr2D); // 获取第一维的大小,即3
int length1 = arr2D.getClass().getDeclaredField("length").getInt(arr2D[0]); // 获取第二维的大小,即4
以上就是三种获取Java二维数组维度的方法。如果你有其他好的方法,欢迎留言分享。