当我LogCat以下我认为将大小输出与冒号左边的相应字段标签联系起来会很好,例如,“这是红色组件:[EGL10.EGL_RED_SIZE],”等等。
int[] attrib = {
EGL10.EGL_RED_SIZE,
EGL10.EGL_GREEN_SIZE,
EGL10.EGL_BLUE_SIZE,
};
for(int n = 0; n < 3; n++){
egl.eglGetConfigAttrib(eglDisplay, config[0], attrib[n], some_value);
Log.v(TAG, String.format("SIZE = %d", some_value[0]));
}
显然目前我只输出:
5
6
5
......等等。
或者,我可以创建一个'attribDefs'数组,该数组加载了与attrib数组分开的硬编码字段描述符,并且只是在LogCat上连接结果 - 这可能甚至是一个更好的解决方案。
我只是想知道2D阵列的相同之处是什么;这样的2D构造如何在attrib数组中初始化? (这不是一个技巧问题或任何事情;我是一个Java菜鸟。)谢谢。
答案 0 :(得分:2)
我不知道你在做什么,但也许这个片段有帮助:
int[][] table = {
{ 1, },
{ 2, 3, },
{ 4, 5, 6 },
{ },
{ 7, },
};
for (int[] row : table) {
int sum = 0;
for (int num : row) {
sum += num;
}
System.out.println("Row sum is " + sum);
}
打印:
Row sum is 1
Row sum is 5
Row sum is 15
Row sum is 0
Row sum is 7
它使用“foreach”循环以提高可读性,因为此特定情况不需要显式索引。另请注意,Java没有“多维数组”,而是具有数组数组,这允许在此示例中出现锯齿状特征。
对于显式索引,除其他外,您可以执行以下操作:
for (int i = 0; i < table.length; i++) {
for (int j = 0; j < table[i].length; j++) {
System.out.print(table[i][j] + " ");
}
System.out.println();
}
打印:
1
2 3
4 5 6
7
每当你有选择时,你应该更喜欢“foreach”循环来显式索引,因为它更易读,更不容易出错。