繁体   English   中英

多维数组上的数组长度

[英]array length on multidimensional arrays

对于以下代码

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.println(veggies.length); 打印出 4 因为有 4 个元素。

System.out.println(fruits.length); 打印出来 2,为什么? 应该不是 9,因为有 9 个元素。

要打印多维 (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);

fruits ,就像你说的,是一个多维数组,或者只是一个数组数组。 在你给出的例子中,fruits 里面有 2 个数组,因此他的长度是 2。
如果你想知道有多少“成果”都在里面,我建议你总结里面每个数组的长度fruits

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

{"orange", "pear", "banana", "pinapple" "grape"}
{"apple", "kiwi", "strawberry", "plum"}

因此,要获取每个数组的长度:

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

Fruits 是一个二维数组,fruits.length 只给你第一维的长度。

水果[0].长度+水果[1].长度会给你9然后

这是因为fruits在该数组中存储了两个数组,第一个长度为 5,第二个长度为 4。如果您只是调用:

System.out.println(fruits.length);

它将返回该数组(2 个数组)中对象的长度。

如果你想获得中第一个数组的长度fruits ,你会打电话

System.out.println(fruits[0].length); ,

这将打印出 5. 如果你要打电话

System.out.println(fruits[1].length); ,

它将打印出 4。

因为, fruits是一个二维数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM