二维数组的概述

二维数组的概述

1.概念和代码

package day06;

/*
二维数组的使用
1.理解:对于二维数组的理解,我们可以看成是一维数组array1又作为另一个一维数组array2的元素而存在。
        其实,从数组底层的运行来看,其实没有多维数组。
2.二维数组的使用
    1>二维数组的声明和初始化
    2>如何调用数组的指定位置的元素
    3>如何获取数组的长度
    4>如何遍历数组
    5>数组元素的默认初始化值
        规定:二维数组分为外层数组的元素,内层数组的元素
            int[][] arr = new int[4][3];
            外层元素:arr[0],arr[1]等
            内层元素:arr[0][0],arr[1][2]等
        针对初始化方式一:比如:int[][] arr=new int[4][3];
            外层元素的初始化值为:地址值
            内层元素的初始化值为:与一维数组初始化情况相同
        针对初始化方式二:比如:int[][] arr=new int[4][];
            外层元素的初始化值为:null
            内层元素的初始化值为:不能调用,否则报错
    6>数组的内存解析
拓展:1.数据结构:
        1>数据与数据之间的逻辑关系:集合、一对一、一对多、多对多
        2>数据的存储结构
            >线性表:顺序表(比如:数组)、链表、栈、队列
            >树形结构:二叉树
            >图形结构
      2.算法:
        >排序算法
        >搜索算法
      3.数组中涉及的常见算法
        >数组元素的赋值(杨辉三角、回形数等)
        >求数值型数组中元素的最大值、最小值、平均数、总和等
        >数组的复制、反转、查找(线性查找、二分法查找)
        >数组元素的排序算法
 */
public class ArrayTest2 {
    public static void main(String[] args) {
        //1.二维数组的声明和初始化
        int[] arr=new int[]{1,2,3}; //一维数组
        //静态初始化
        int[][] arr1=new int[][]{{1,2,3},{4,5},{6,7,8}};
        //动态初始化1
        String[][] arr2=new String[3][2];
        //动态初始化2
        String[][] arr3=new String[3][];


        //也是正确的写法
        int[] arr4[]=new int[][]{{1,2,3},{4,5},{6,7,8}};
        int[] arr5[]={{1,2,3},{4,5},{6,7,8}};

        //错误的情况
//        String[][] arr4=new String[][4];
//        String[4][3] arr5=new String[][];
//        int[][] arr6=new int[4][3]{{1,2,3},{4,5},{6,7,8}};

        //2.如何调用数组的指定位置的元素
        System.out.println(arr1[0][1]);  //2
        System.out.println(arr2[1][1]);  //null

        arr3[1]=new String[4];
        System.out.println(arr3[1][0]);
        //3.如何获取数组的长度
        System.out.println(arr4.length);  //3
        System.out.println(arr4[0].length); //3
        System.out.println(arr4[1]); //2
        //4.如何遍历数组
        for (int i = 0; i < arr4.length; i++) {
            for (int j = 0; j < arr4[i].length; j++) {
                System.out.print(arr4[i][j]+"  ");
            }
            System.out.println();
        }
        //5.数组元素的默认初始化值

        int[][] arr6=new int[4][3];
        System.out.println(arr6[0]); //地址值:[I@677327b6 含义(一维数组,int类型 地址为677327b6)
        System.out.println(arr6[0][0]); //0
        System.out.println(arr6); //地址值:[[I@14ae5a5 含义(二维数组,int类型 地址为14ae5a5)

        float[][] arr7=new float[4][3];
        System.out.println(arr7[0]);  //地址值
        System.out.println(arr7[0][0]);  //0.0

        String[][] arr8=new String[4][2];
        System.out.println(arr8[1]);  //地址值:[Ljava.lang.String;@6d6f6e28  含义(一维数组,包名,地址为6d6f6e28)
        System.out.println(arr8[1][1]);  //null

        double[][] arr9=new double[4][];
        System.out.println(arr9[1]); //null
        System.out.println(arr9[1][0]); //报错(空指针异常)
    }
}

2.运行结果

2
null
null
3
3
[I@1540e19d
1  2  3  
4  5  
6  7  8  
[I@677327b6
0
[[I@14ae5a5
[F@7f31245a
0.0
[Ljava.lang.String;@6d6f6e28
null
null
Exception in thread "main" java.lang.NullPointerException
	at day06.ArrayTest2.main(ArrayTest2.java:94)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值