How to iterate over each element in a jagged array?

前端 未结 3 2100
温柔的废话
温柔的废话 2020-12-22 14:38

I have one 2 dimensional array, so an array of arrays. The arrays of the arrays DONT have the same lengths. Here an example:

double[][] multi = new double[][         


        
3条回答
  •  忘掉有多难
    2020-12-22 14:51

    You can do it like this to iterate the whole array column-wise:

    // Get the maximum number of columns among all rows.
    int maximumColumns = 0;
    for (double[] row : multi) {
        if (row.length > maximumColumns) {
            maximumColumns = row.length;
        }
    }
    
    for (int column = 0; column < maximumColumns ; column++) {
        for (int row = 0; row < multi.length; row++) {
            if (column >= multi[row].length) {
                // There is no value for this column.
            } else {
                // Do stuff here with multi[row][column].
            }
        }
    }
    

    For a specific column that exists in all rows do this:

    int columnToIterate = // Your column.
    for (int row = 0; row < multi.length; row++) {
        if (columnToIterate < multi[row].length) {
            // Do stuff here with multi[row][columnToIterate].
        }
    }
    

提交回复
热议问题