数组

  • 数组是存储多个变量(元素)的东西(容器),要求这多个变量的数据类型要一致,直白的说就是数组只能储存相同弄类型的数据,可以是基本数据类型,也可以是引用数据类型

  • 数组有两种定义格式:
  1. 格式1(推荐使用):数据类型[]     数组名 = new 数据类型[长度]

  2. 格式2:数据类型    数组名[]  = new 数据类型[长度]

        Java中的数组必须先初始化,然后才能使用。所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。

  • 数组的两种初始化方式
  1. 动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。

    格式:数据类型[] 数组名 = new 数据类型[数组长度]; 数组长度其实就是数组中元素的个数。

    举例:

            int[] arr = new int[3]; 解释:定义了一个int类型的数组,这个数组中可以存放3个int类型的值。


   

    2.静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度。

    格式:

            数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};

            举例:

                    int[] arr = newint[]{1,2,3};

            解释:定义了一个int类型的数组,这个数组中可以存放3个int类型的值,并且值分别是1,2,3。

        简化格式:

                      数据类型[] 数组名 = {元素1,元素2,...};

                        简化格式举例:int[] arr = {1,2,3};


  • 访问数组方式:

        直接打印数组名,打印的是数组堆内存中的地址

         数组中的每个元素都是有编号的,编号是从0开始的,最大的编号就是数组的长度-1

         用数组名和编号的配合我们就可以获取数组中的指定编号的元素

         这个编号的专业叫法:索引

         格式:数组名[编号] -- 数组名[索引]

         数组名称为arr,索引为0,1,2

         获取数组中元素的格式:

         u arr[0]获取数组中的第一个元素

         arr[1]获取数组中的第二个元素

          arr[2]获取数组中的第三个元素


  • 数组两个常见问题:
  1. 数组索引越界异常ArrayIndexOfBoundsException,访问到了数组中的不存在的索引时发生。

  2. 空指针异常NullPointerException,数组引用没有指向对象,却在操作对象中的元素时。


  • 二维数组:其实二维数组就是其中每个元素都是为一维数组的数组。也就是一维数组作为二维数组的元素
  • 二维数组定义格式:

             数据类型[][] 数组名;

             数据类型数组名[][]; 不推荐

             数据类型[] 数组名[]; 不推荐

  • 初始化方式:

             数据类型[][] 变量名 = new 数据类型[m][n];

             数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}};

             简化版格式:数据类型[][] 变量名 = {{元素…},{元素…},{元素…}};

  • 二维数组遍历:
    public static void main(String[] args) {
        int[][] arr = { {1,2}, {3,4,5}, {6,7,8,9} };
        /**
         * 二维数组中的一维数组名称:二维数组名[索引]
         * arr[0] 其实就是二维数组中的第一个一维数组的名称
         * arr[1] 其实就是二维数组中的第二个一维数组的名称
         * arr[2] 其实就是二维数组中的第三个一维数组的名称
         */
        for (int i = 0; i < arr.length; i++) {
            // 外层遍历拿到的是二维数组的元素,也就是一维数组
            for (int j = 0; j < arr[i].length; j++) {
                System.out.println(arr[i][j]);
            }
        }
    }





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值