这是在Android中填充2D数组的错误方法吗?

时间:2015-01-21 10:39:23

标签: android arrays multidimensional-array

我试图填写boolean[][],但我一直在努力:

  

数组越界错误

这个循环有问题吗?

public static final int NUM_COL = 3;
public static final int NUM_ROW = 5;
public boolean[][] fillEmptyCompletedTopics(boolean[][] completedTopics){

    for(int i = 0; i < NUM_ROW; i++){
        for(int n = 0; n < NUM_COL; n++){
            completedTopics[i][n] = false;
        }
    }

    return completedTopics;
}

编辑:这里是初始化的数组:

boolean[][] completedTopics = new boolean[NUM_ROW][NUM_COL];

edit2:我发现调用这个数组的另一个错误,我想循环没问题。谢谢。

2 个答案:

答案 0 :(得分:2)

通常我建议使用数组的长度字段来限制迭代次数


for(int i = 0; i < c.length; i++) {
    for(int j = 0; j < c[i].length; j++) {
        //Do stuff
    }
}

答案 1 :(得分:0)

您需要确保boolean[][]中有足够的空间。 显然情况并非如此。

如果您知道它将具有的尺寸,请使用类似的东西:

public static final int NUM_COL = 3;
public static final int NUM_ROW = 5;

public boolean[][] fillEmptyCompletedTopics(){
    boolean[NUM_COL][NUM_ROW] completedTopics;
    for(int i = 0; i < NUM_ROW; i++){
        for(int n = 0; n < NUM_COL; n++){
            completedTopics[i][n] = false;
        }
    }
    return completedTopics;
}