如何通过Foreach循环在java中获取2-D数组中的列?

时间:2016-02-28 09:19:52

标签: java arrays foreach

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

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

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

谢谢。

3 个答案:

答案 0 :(得分:3)

一种替代方案可以是

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

2D数组只是一个概念意义。实际上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]);
    }

}