简体   繁体   中英

Using two for loops to loop through a 2D array in java

How do I use two for loops to loop through a 2D array? for example- 1st for loop --- for(int step = 0; step<array.length; step++){ 2nd for loop ---

As you have a 2-d array, you have two length values for each loop:

  //you have this? array[][];
  for(int i = 0; i < array.length; ++i) {
    for(int j = 0; j < array[i].length; ++j) {
      //do something on array[i][j] 
    }
  }

Assuming you have arrays of strings :

for(int step = 0; step < firstLevelArray.length; step++){
    String[] secondLevelArray = firstLevelArray[step];
    for(int step2 = 0; step2 < secondLevelArray.length; step2++){
        String s  = secondLevelArray[step2];
    }
}

You can use for each loops for this:

Object[][] objects = ...;

// Option 1, read only
for(Object[] arr : objects) { // 'for each Object[] in objects'
    for(Object obj : arr) {
        System.out.println(obj);
        // obj = new Object(); // doesn't change the array
    }
}

// Option 2, write (for filling the arrays)
for(Object[] arr : objects) {
    for(int i = 0; i < arr.length; i++) { // standard indexing loop, can write
            arr[i] = new Object();
    }
}

Basically, there are two ways to scanning 2d-array:

1) By row

for(int row = 0; row < rowSize; row++){
    for(int col = 0; col < colSize; col++){
        // do something on array[row][col]
    }
}

2) By column

for(int col = 0; col < colSize; col++){
    for(int row = 0; row < rowSize; row++){
        // do something on array[row][col]
    }
}

Let's assume we have a two dimensional array employee of size 4X4,

int employee[ ][ ] = new int[4][4];

for(int row = 0; row < employee.length; row++)
{
   for(int col = 0; col < employee[row].length; col++)
   {
      employee[row][col] = row * col;
   }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM