如何通过 Foreach 循环在 java 中获取二维数组中的列



我可以通过foreach循环从java中的2D数组中获取一行,例如:

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

但是如何通过 foreach 循环获得列形式的 2D 数组?或者这是否可以通过 foreach 循环从 2D 数组中获取列?

谢谢。

一种选择可以是

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

是不可能的。你必须使用传统的 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];
    }
}

2D 数组只是一个概念含义。 事实上,二维数组是多个一维数组的组合。因此,如果不使用计数器,则无法访问列。即使您用于每个循环,您也需要一个计数器。

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

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]);
    }
}

最新更新