首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Java中获取二维数组的数组长度

在Java中获取二维数组的数组长度
EN

Stack Overflow用户
提问于 2010-10-23 03:15:11
回答 11查看 628.9K关注 0票数 158

我需要获取行和列的二维数组的长度。我已经使用以下代码成功地完成了这项工作:

代码语言:javascript
复制
public class MyClass {

 public static void main(String args[])
    {
  int[][] test; 
  test = new int[5][10];

  int row = test.length;
  int col = test[0].length;

  System.out.println(row);
  System.out.println(col);
    }
}

这会像预期的那样输出5,10。

现在看一下这一行:

代码语言:javascript
复制
  int col = test[0].length;

请注意,为了获得列长度,我实际上必须引用特定的行。在我看来,这看起来非常丑陋。此外,如果数组定义为:

代码语言:javascript
复制
test = new int[0][10];

然后,当尝试获取长度时,代码将失败。有没有一种不同的(更智能的)方式来做到这一点?

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2010-10-23 03:21:07

考虑一下

代码语言:javascript
复制
public static void main(String[] args) {

    int[][] foo = new int[][] {
        new int[] { 1, 2, 3 },
        new int[] { 1, 2, 3, 4},
    };

    System.out.println(foo.length); //2
    System.out.println(foo[0].length); //3
    System.out.println(foo[1].length); //4
}

每行的列长度不同。如果您通过固定大小的2D数组来支持某些数据,那么可以在包装器类中为固定值提供getter。

票数 210
EN

Stack Overflow用户

发布于 2010-10-23 03:35:02

二维阵列不是矩形栅格。或者更好的是,Java中没有2D数组这样的东西。

代码语言:javascript
复制
import java.util.Arrays;

public class Main {
  public static void main(String args[]) {

    int[][] test; 
    test = new int[5][];//'2D array'
    for (int i=0;i<test.length;i++)
      test[i] = new int[i];

    System.out.println(Arrays.deepToString(test));

    Object[] test2; 
    test2 = new Object[5];//array of objects
    for (int i=0;i<test2.length;i++)
      test2[i] = new int[i];//array is a object too

    System.out.println(Arrays.deepToString(test2));
  }
}

输出

代码语言:javascript
复制
[[], [0], [0, 0], [0, 0, 0], [0, 0, 0, 0]]
[[], [0], [0, 0], [0, 0, 0], [0, 0, 0, 0]]

数组testtest2 (或多或少)相同。

票数 22
EN

Stack Overflow用户

发布于 2019-01-24 00:00:18

这真的很难记住

代码语言:javascript
复制
    int numberOfColumns = arr.length;
    int numberOfRows = arr[0].length;

让我们来理解为什么会这样,以及当我们遇到一个数组问题时,我们如何解决这个问题。从下面的代码中我们可以看到rows =4,columns = 3:

代码语言:javascript
复制
    int[][] arr = { {1, 1, 1, 1}, 

                    {2, 2, 2, 2}, 

                    {3, 3, 3, 3} };

arr中有多个数组,这些数组可以垂直排列以获得列数。为了得到行数,我们需要访问第一个数组并考虑它的长度。在本例中,我们访问1,1,1,1,因此,行数= 4。当您遇到看不到数组的问题时,您可以将数组可视化为一个n×m维的矩形,并得出结论,我们可以通过访问第一个数组然后访问它的长度来获得行数。另一个(arr.length)用于列。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4000169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档