我可以通过foreach循环从java中的2D数组中获取一行:
int[][] array = new int[5][5]
for (int[] row : array) {
for (int c : row) {
}
}
但是如何通过foreach循环获取2D数组的列?或者是否可以通过foreach循环从2D数组中获取列?
谢谢。
答案 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]);
}
}