这是在 Android 中填充二维数组的错误方法吗?
Is this the wrong way to fill a 2D array in Android?
我正在尝试填写 boolean[][]
,但我不断收到:
array out of bounds error
这个循环有问题吗?
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: 我发现调用这个数组的另一个错误,我猜循环是好的。谢谢。
您需要确保 boolean[][]
中有足够的 space。
显然不是这样。
如果您知道它的尺寸,请使用类似这样的东西:
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;
}
通常我建议使用数组的长度字段来限制迭代
for(int i = 0; i < c.length; i++) {
for(int j = 0; j < c[i].length; j++) {
//Do stuff
}
}
</pre>
我正在尝试填写 boolean[][]
,但我不断收到:
array out of bounds error
这个循环有问题吗?
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: 我发现调用这个数组的另一个错误,我猜循环是好的。谢谢。
您需要确保 boolean[][]
中有足够的 space。
显然不是这样。
如果您知道它的尺寸,请使用类似这样的东西:
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;
}
通常我建议使用数组的长度字段来限制迭代
for(int i = 0; i < c.length; i++) {
for(int j = 0; j < c[i].length; j++) {
//Do stuff
}
}
</pre>