java学习笔记36:多维数组的声明及内存分析、动静态初始化、获取二维数组的长度、数组存储表格数据

多维数组可以看成以数组为元素的数组。可以有二维、三维、甚至更多维数组,但是实际开发中用的非常少。最多到二维数组(学习容器后,我们一般使用容器,二维数组用的都很少)。

示例:二维数组的声明

public class Test {

	public static void main(String[] args) {
		//Java中多维数组的声明和初始化应按从低维到高维的顺序进行
		int[][] a = new int[3][];
		
		a[0] = new int[2];
		a[1] = new int[4];
		a[2] = new int[3];
		
		// int a1[][]=new int[][4];//非法
	}
}

示例:二维数组的静态初始化

public class Test {
    public static void main(String[] args) {
        int[][] a = { { 1, 2, 3 }, { 3, 4 }, { 3, 5, 6, 7 } };
        System.out.println(a[2][3]);
    }
}

内存分析:
在这里插入图片描述
示例:二维数组的动态初始化

package test;

import java.util.Arrays;

public class Test {

	public static void main(String[] args) {
		int[][] a = new int[3][];
		// a[0] = {1,2,5}; //错误,没有声明类型就初始化
		a[0] = new int[] {1, 2};
		a[1] = new int[] {2, 2};
		a[2] = new int[] {2, 2, 3, 4};
		
		System.out.println(a[2][3]);
        System.out.println(Arrays.toString(a[0]));
        System.out.println(Arrays.toString(a[1]));
        System.out.println(Arrays.toString(a[2]));
	}
}

运行结果:
二维数组的动态初始化

示例:获取数组长度

        //获取的二维数组第一维数组的长度。
        System.out.println(a.length);
        
        //获取第二维第一个数组长度。
        System.out.println(a[0].length);

数组存储表格数据

表格数据模型是计算机世界最普遍的模型,可以这么说,大家在互联网上看到的所有数据本质上都是“表格”,无非是表格之间互相套用。

如下表格是一张雇员表:
雇员表
我们观察表格,发现每一行可以使用一个一维数组存储:

        Object[] a1 = {1001,"高淇",18,"讲师","2006-2-14"};
        Object[] a2 = {1002,"高小七",19,"助教","2007-10-10"};
        Object[] a3 = {1003,"高小琴",20,"班主任","2008-5-5"};

注意事项
  此处基本数据类型”1001”,本质不是Object对象。JAVA编译器会自动把基本数据类型“自动装箱”成包装类对象。在下一章学了包装类后就懂了。

这样我们只需要再定义一个二维数组,将上面3个数组放入即可:

        Object[][]  emps = new Object[3][];
        emps[0] = a1;
        emps[1] = a2;
        emps[2] = a3;

示例:二维数组保存表格数据

package test;

import java.util.Arrays;

public class Test {

	public static void main(String[] args) {
		Object[] a1 = {1001, "高淇", 18, "讲师", "2006-2-14"};
		Object[] a2 = {1002, "高小七", 19, "助教", "2007-10-10"};
		Object[] a3 = {1003, "高小琴", 20, "班主任", "2008-5-5"};
		
		Object[][] emps = new Object[3][];
		
		emps[0] = a1;
        emps[1] = a2;
        emps[2] = a3;
        
        System.out.println(Arrays.toString(emps[0]));
        System.out.println(Arrays.toString(emps[1]));
        System.out.println(Arrays.toString(emps[2]));  
	}
}

运行结果:
数组存储表格数据

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值