java多维数组的使用
/**
* 测试多维数组 即在数组的元素中存放数组
*/
public class Test7 {
public static void main(String[] args) {
//多维数组的默认初始化方式
int[][] a = new int[3][];
//二维数组两个[] 定义时第一个[]内写一维的空间 第二个[]空
//定义后数组的第一维a[3]={null,null,null}
a[0] = new int[2];
a[1] = new int[3];
a[2] = new int[4];
//分别定义第二维数组
//如果第二维数组空间一样大也可以new int[3][x]一起定义
//多维数组静态初始化
int[][] b = {{1,2,3},{4,5},{6,7,8}};
//定义了第一维长度3,第二维分别为{1,2,3} {4,5} {6,7,8}
//多维数组动态初始化
int[][] c = new int[3][];
c[0] = new int[]{1,2,3};
//int[]代表第一维 {}的内容赋值给第二维
//c[0] = {1,2,3}是错误的 格式要求必须声明第二维的类型new int[]
c[1] = new int[]{4,5};
//格式 c[x] = new int[]{x,x,x}
c[2] = new int[]{6,7,8};
//可以分别new int[x]分别for循环赋值
System.out.println(c.length+"打印第一维数组的长度");
System.out.println(c[1].length+"打印第二维数组的长度");
Object[] o0 = {01,"张三",18,"无","1990-1-1"};
//一切对象都属于Object类 用Object[]数组可以放多种类型的内容
//数字01 18属于基本数据类型 通过包装类变为对象供Object[]数组使用
Object[] o1 = {02,"李四",19,"有","1991-2-2"};
Object[] o2 = {03,"王五",20,"无","1993-3-3"};
Object[][] o = new Object[3][];
o[0] = o0;
o[1] = o1;
o[2] = o2;
//通过二维数组 存储表格数据
for(int i = 0;i<o.length;i++){
//.length 数组的长度 for循环遍历
System.out.println(Arrays.toString(o[i]));
}
for(Object[] j:o){
//for-each遍历
System.out.println(Arrays.toString(j));
}
for(int i = 0;i<o.length;i++){
//用嵌套循环打印
System.out.print("[");
for (int j =0;j<o[i].length;j++){
System.out.print(o[i][j]+(j==o[i].length-1?"]\n":", "));
}
}
for(int i = 0;i<o.length;i++){
//查找大于等于19岁 打印
if ((int)(o[i][2])<19)continue;
//o是Object数组 所有元素都为Object 数字19不是Object 比较需要强制转换
System.out.print("[");
for (int j =0;j<o[i].length;j++){
System.out.print(o[i][j]+(j==o[i].length-1?"]\n":", "));
}
}
}
}