Java 多维数组上的数组长度

Java 多维数组上的数组长度,java,multidimensional-array,Java,Multidimensional Array,对于下面的代码 public static void main(String[] args) { String[][] fruits = {{"orange", "pear", "banana", "pinapple" "grape"}, {"apple", "kiwi", "strawberry", "plum"}}; String[] veggies = {"okra","pumpkin", "spinach", "brockoli"

对于下面的代码

public static void main(String[] args)
  {

  String[][] fruits = {{"orange", "pear", "banana", "pinapple" "grape"},
                     {"apple", "kiwi", "strawberry", "plum"}};

  String[] veggies = {"okra","pumpkin", "spinach", "brockoli"};


  System.out.println(fruits.length); 
  System.out.println(veggies.length);

  }  
System.out.printlnveggies.length;打印出4,因为有4个元素

System.out.println.length;打印2张,为什么?它不应该是9,因为有9个元素。

因为它是一个二维数组

正如您所说,水果是一个多维数组,或者只是一个数组数组。 在您给出的示例中,fruits包含2个数组,因此其长度为2。 如果你想知道里面有多少水果,我建议你把水果里面每个数组的长度加起来

fruits.length仅提供存储在水果中的元素数量。那是多少?只有两个。水果包含两种元素。它们恰好是包含其他项的数组:

{"orange", "pear", "banana", "pinapple" "grape"}
{"apple", "kiwi", "strawberry", "plum"}
因此,要获得每个数组的长度:

fruits[0].length
fruits[1].length

fruits是一个二维数组,fruits.length仅提供第一维的长度

水果[0]。长度+水果[1]。长度将为9,因为水果在该数组中存储了两个数组,第一个数组长度为5,第二个数组长度为4。 如果你只是打电话:

System.out.println.length

它将返回该数组中的对象的长度

如果您想获得水果中第一个数组的长度,可以调用

System.out.printlnfruits[0]。长度

它将打印出5个。如果你打电话

System.out.printlnfruits[1]。长度


它将打印出4。

要打印多维n数组的长度,您应该使用n个循环

因此,您应该使用:

String[][] fruits = {{"orange", "pear", "banana", "pinapple" "grape"},
                 {"apple", "kiwi", "strawberry", "plum"}};
int length = 0;
for(int i=0;i<fruits.length;i++){
  length += fruits[i].length;
 }
System.out.println(length);

结果[0]。长度将返回5,结果[1]。长度将返回4否,多维数组是数组的数组。因此它返回2是合乎逻辑的,因为它是数组中的数组数。也许更好:s/multi/two/two-dimensions!=两个元素数组是二维的这一事实并不能解释为什么它打印出2-你的陈述令人困惑。