概念:数组的元素依然是数组
int[] a = {1,2,3,4};
int[] [] b ={{1,2},{2,3,4,5,6,},{1,2,3}}
数组的访问:
b[0]-->{1,2}
b[1]-->{2,3,4,5,6,}
b[2]-->{1,2,3}
b[0][0]-->1
b[0][1]-->2
.........
b[1][4]-->6
b[1][3]-->5
二维数组的初始化:
静态初始化
如:int[][] a = {{1},{1,2},{2,3}};
动态初始化
(1)等长式初始化
int[][] a = new int[3][2];
表示a有三个元素每个元素都是长度为2的数组
(2)之规定高维数组
int[][] a = new int[3][];
表示a有三个元素,但都是null
null在使用
二维数组的代码练习:
import java.util.Arrays;
public class ArrayDemo01{
public static void main(String [] args){
/*二维数组的声明和初始化*//*静态初始化:*/
int[][] a = {{1,2},{3,4,5,},{6,7}};
/*使用for循环遍历*/
for(int i=0;i<a.length;i++){
int[] n = a[i];
//System.out.println(Arrays.toString(n));
for(int j = 0;j<n.length;j++){
int m = n[j];
System.out.print(m+" ");
}
System.out.println();
}
/*
动态初始化
二维数组等长式初始化,考虑数组下标越界
*/
int [][] b = new int[6][5];
//访问输出第一个数组
System.out.println(Arrays.toString(b[0]));
b[0][0] = 1;
//b[0][6] = 7;
System.out.println(Arrays.toString(b[0]));
/*
动态初始化
只规定了高维数组的长度。
里面的元素是null
不能直接进行赋值
应该先把null替换成响应数组对象*/
int [][] c = new int[3][];
//输出c的第一个数组
System.out.println(Arrays.toString(c[0]));//null
c[0] = new int [2];//将null替换成数组对象
System.out.println(Arrays.toString(c[0]));
c[0][1] = 2;
c[0][0] = 1;
System.out.println(c[0]);
System.out.println(Arrays.toString(c[0]));
c[1] = new int [3];
c[1][1] = 4;
System.out.println(Arrays.toString(c[1]));
c[2] = new int [2];
System.out.println(Arrays.toString(c[2]));
}
}