Java的参数传递

标签 java variables parameter-passing

有人可以向我详细解释一下为什么这段代码会打印 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;
   }
}

最佳答案

    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。

关于Java的参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19498081/

相关文章:

java - 将 Haskell 函数转换为 java "function"

java - 使用 zxing 将 byte[] 解码为 Android 中的字符串

arrays - 在 kotlin 中初始化数组

python - 将相同的参数传递给多个函数 - Python

java - 默认情况下,任何类都扩展 Object 类。不是说java支持多重继承吗?

java - 临时表错误

java - 从 main 方法中的类访问包含变量的非静态方法?

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

python - 函数中的可选参数及其可变的默认值

c++ - 我可以有条件地使用超过 1 个参数吗?