有人可以向我详细解释为什么这段代码打印2?
import java.util.*;
public class TestCode2 {
public static void main(String[] args) {
int[][] array = {{1,2,3,4}, {5,6,7,8}};
System.out.println(m1(array)[0]);
// System.out.println(m2(array)[1]);
}
public static int[] m1(int[][] m) {
int[] result = new int[2];
result[0] = m.length;
result[1] = m[0].length;
return result;
}
}
答案 0 :(得分:3)
int[][] array = {{1,2,3,4}, {5,6,7,8}};
=> int[][] array = {arrayOne, arrayTwo};
数组的长度为2,因为它只是一个二维数组,包含2个子数组(长度均为4)。
所以
array.length = 2;
array[0].length = length of arrayOne (i.e: length of {1,2,3,4}) = 4
array[1].length = length of arrayTwo (i.e: length of {5,6,7,8}) = 4
<小时/> 总结一下:
public static int[] m1(int[][] m) {
int[] result = new int[2];
result[0] = m.length; //m.length = 2
result[1] = m[0].length; //m[0].length = length of {1,2,3,4} = 4
return result; //{2,4}
}
然后你只需打印返回的这个数组的第一个元素,即2。
答案 1 :(得分:1)
这是一个二维数组,所以: 当你喜欢这样的时候: int [] [] array = {{1,2,3,4},{5,6,7,8}} int a = array.length; \即a = 2 这是因为数组处理2个集合,因为它的元素意味着{1,2,3,4}和{5,6,7,8}被认为是单个元素 抱歉错误的格式,因为我正在使用移动
答案 2 :(得分:1)
m1()将二维数组作为i / p&amp;返回一个(1D)数组,第一个元素作为i / p数组的长度,在这种情况下是2;因此2。