首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Java中的多维数组

使用Java中的多维数组
EN

Stack Overflow用户
提问于 2015-02-25 14:55:41
回答 4查看 6.7K关注 0票数 5

我读过Java:完整的参考(第9篇)。在字符5中:控制语句-遍历多维数组部分编写:

增强版的for也适用于多维数组。但是,请记住,在Java中,多维数组由数组组成。(例如,二维数组是由一维数组组成的数组。)在对多维数组进行迭代时,这一点很重要,因为每次迭代都获得下一个数组,而不是单个元素。此外,for循环中的迭代变量必须与所获得的数组类型兼容。例如,对于二维数组,迭代变量必须是对一维数组的引用。通常情况下,当使用for-each for在N维数组上迭代时,获得的对象将是N-1维数组。为了理解这一点的含义,请考虑以下程序。它使用嵌套的for循环来获得二维数组的元素,从一开始到最后,按行顺序排列。

我不明白为什么“在N维数组上迭代,得到的对象将是N-1维数组”。是真的吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-02-25 14:57:46

N维数组实际上是(N1)-dimensional数组的数组。因此,当我们在N维数组上迭代时,我们将遍历它的所有组成(N-1)-dimensional数组,如所示。

例如,考虑一个二维数组:

代码语言:javascript
复制
int[][] array = {{1,2,3}, {4,5,6}};

这实际上是一个一维数组:{1,2,3}{4,5,6}.

票数 9
EN

Stack Overflow用户

发布于 2015-02-25 15:04:48

考虑一个三维矩阵(数学上定义的)。

当你在行中迭代时,你得到的是二维矩阵,当你遍历每个二维矩阵时,你得到的是一维向量。

代码语言:javascript
复制
    // Three dimensions
    String[][][] stringArray = new String[3][3][3];

    // Iterating over one dimension
    // results in two dimensional array
    for (String[][] strings : stringArray) {
        // Iterating over one dimension
        // results in one dimensional array
        for (String[] strings2 : strings) {
            // Iterating over one dimension
            for (String string : strings2) {

            }
        }
    }
票数 4
EN

Stack Overflow用户

发布于 2015-02-25 14:58:42

假设您的多维数组为(x,y,z)。当你在第一个坐标上迭代时,你固定x (x = 1,2,…,n),得到(y,z) 2d-数组。

然后将y(y = 1,2,.,m)固定,得到(z)一维数组。

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

https://stackoverflow.com/questions/28722209

复制
相关文章

相似问题

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