【问题标题】:How to get column in 2-D array in java by Foreach loop?如何通过 Foreach 循环在 Java 中获取二维数组中的列?
【发布时间】:2016-02-28 09:19:52
【问题描述】:

我可以通过 foreach 循环从 java 中的二维数组中获取一行:

        int[][] array = new int[5][5] 
        for (int[] row : array) {
        for (int c : row) {
        }
        }

但是如何通过 foreach 循环获取二维数组的列?或者这是否可以通过 foreach 循环从二维数组中获取列?

谢谢。

【问题讨论】:

  • 你能澄清一下这个问题吗?你想要列的索引吗,使用foreach意味着你没有得到索引。如果您希望索引使用传统的 for 循环。
  • 你确定你的数组是一个长宽相同的完美方阵(N x N)吗?

标签: java arrays foreach


【解决方案1】:

另一种选择是

    int i =0;
    for (int k : array[0]){
        for (int[] row : array) {
            System.out.println(row[i]);
        }
        i++;
    }

【讨论】:

  • 这是一个聪明的。 :D
【解决方案2】:

这是不可能的。您必须使用传统的 for 循环:

int[][] array = new int[5][5] 
for (int j = 0; j < array[0].length; j++) {
    for (int i = 0; i < array.length; i++) {
        int current = array[i][j];
    }
}

【讨论】:

    【解决方案3】:

    二维数组只是概念上的意思。实际上二维数组是多个一维数组的组合。因此,如果不使用计数器,您将无法访问这些列。即使你使用每个循环,你也需要一个计数器。

    如果您需要获取所有列,则可以使用列数进行循环。但在这种情况下,所有行都应该具有相同数量的列(元素)

    public static void main(String[] args)
    {
        int [][] yourArray = {{1,2,3,4,5,6},//sample 2d array with 6 rows and six columns
                        {1,2,3,4,5,6},      //this is actually a collection of 6 different 1d arrays
                        {1,2,3,4,5,6},
                        {1,2,3,4,5,6},
                        {1,2,3,4,5,6},
                        {1,2,3,4,5,6}};
    
        int yourColumn = 3; //example of selected column (be careful columns start from 0)
    
        for(int[] row: yourArray)
        {
            System.out.println(row[yourColumn]);
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 2018-07-02
      • 2013-05-06
      • 2013-08-19
      • 2017-07-07
      • 1970-01-01
      • 2011-02-19
      • 2020-12-08
      • 2021-09-06
      • 1970-01-01
      相关资源
      最近更新 更多