二维数组
1,二维数组声明:
元素数据类型 [][] 数组变量名 int[][] array
元素数据类型 数组变量名 [][] int array[][]
元素数据类型[] 数组变量名[] int[] array[]
2,二维数组的初始化
分为静态初始化和动态初始化
静态初始化
int [][] array ={{1,2,3},{4,5,6},{7,8,9},{10,11,12}}
上述代码创建了一个4X3的二维数组,其中第一个元素是{1,2,3},第二个元素是{4,5,6},第三个元素是{7,8,9},第四个元素是{10,11,12} 如图所示
动态初始化:new 数组元素类型 [高维数组长度][低纬数组长度]
高维数组是最外面的数组,低纬数组是每个元素的数组,
int [][] array = new int[4][3]
4是高维数组下标索引,3是低纬数组下标索引
二维数组示例:
/**
* 二维数组
* @author Administrator
*
*/
public class ShuZu {
public static void main(String[] args) {
int [][] array = {{1,2,3},{-11,-12,13},{21,22,23},{31,32,33}};
//动态数组
double [][] array1 = new double[4][3];
//计算array1的绝对值,结果保存到double array2中
for(int i = 0 ;i<array.length;i++) {
for(int j = 0;j<array[i].length;j++) {
array1 [i][j] = Math.abs(array[i][j]);
}
}
//遍历输出结果数组
for(int i = 0;i <array1.length;i++) {
for(int j = 0;j<array1[i].length;j++) {
System.out.print(array1[i][j] + " ");
}
System.out.println();
}
}
}
不规则数组:
int [][] array = {{1,2},{21},{31,32,33},{41,42}}
高维数组4个元素,但是低纬数组个数不定
动态初始化不规则数组比较麻烦,它不能new[4][3],而是先new高维数组,然后低维在一个一个new
如 int [][] array = new int[4][];
array [0] = new int[2];
array[1] = new int[1];
array[2] = new int[3];
array[3] = new int[2];
二维数组示例:
/**
* 不规则数组
* @author Administrator
*
*/
public class Buguize {
public static void main(String[] args) {
int [][] array = new int[4][];
array[0] = new int[2];
array[1] = new int[1];
array[2] = new int[3];
array[3] = new int[3];
for(int i = 0;i<array.length;i++) {
for(int j = 0;j<array[i].length;j++) {
array[i][j] = i + j;
}
}
for (int[] is : array) {
for (int i : is) {
System.out.print(i + " ");
}
System.out.println();
}
// for(int i = 0 ;i <array.length;i++) {
// for(int j = 0;j<array[i].length;j++) {
// System.out.print(array[i][j] + " ");
// }
// System.out.println();
// }
}
}
for循环和for-each循环都可以输出,但是要注意数组下标越界。