数组--数组的初始化--动态初始化

动态初始化

初始化时只指定数组长度,由系统为数组分配初始值。

格式

数据类型[] 数组名 = new 数据类型[数组长度];


数组长度其实就是数组中元素的个数。

举例:

int[] arr = new int[3];

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

 

程序示例

public class ArrayDemo1 {
    public static void main(String[] args) {


//        定义一个数组,int类型的数组。
//        int[] arr;


//        单独使用是没有任何意义地,因为尚未初始化变量arr,未初始化之前不能使用。
//        System.out.println(arr);




//        动态初始化的方式定义一个int类型的数组,长度为3
           int[] arr = new int[3];


/*        代码解释:
           左边:
           int: 说明数组中的元素的数据类型是int类型
           []: 说明它是一个数组类型
           arr: 给数组起个名字

           右边:
           new: 代表为数组分配一个内存空间
           int: 说明数组中的元素的数据类型是int类型
           []: 说明它是一个数组
           3: 代表着数组的长度,其实这里的3就是数组元素的个数
*/

           System.out.println(arr);         //    输出结果:  [I@4554617c       地址值: 十六进制的。


//        但是呢,在实际编写代码的过程中,拿到地址值是没有任何意义的,我们大多数情况下实际上是想获取数组的元素值,怎么获取呢?


//        数组里面提供了一个类似于编号作用的东西,我们称之为索引(下标)。


//        如何通过索引获取数组中的元素呢?


//        语法格式:
//        数组的名称[索引]
//        注意:索引的编号是从0开始的,从左往右的顺序编号。




//        获取arr数组中的第一个元素


           System.out.println(arr[0]);          //输出结果为0,因为我们没有给数组里面的元素赋值,0是系统为数组分配初始值。


//        获取arr数组中的第二个元素


          System.out.println(arr[1]);         //输出结果为0,因为我们没有给数组里面的元素赋值,0是系统为数组分配初始值。


//       获取arr数组中的第三个元素


          System.out.println(arr[2]);         //输出结果为0,因为我们没有给数组里面的元素赋值,0是系统为数组分配初始值。

    }
}




/*
         此时数组中的元素的值是系统默认给的值,大多数情况下我们定义一个数组,实际上想存的是我们自己给的值。
         如何将我们想给的值赋值给数组中的元素呢?
 */
public class ArrayDemo2 {
    public static void main(String[] args) {


//     动态初始化定义一个数组,元素是int类型的,元素个数为3个
        int[] arr = new int[3];

//     定义完数组后,输出数组的名字和各个元素值
        System.out.println(arr);


//     输出数组中每个元素的值
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);

//     需求:想要把10,20,30这个三个值分别赋值给数组中的第一个元素,第二个元素、第三个元素。
     
        arr[0] = 10;
        arr[1] = 20;
        arr[2] = 30;




        //再打印数组的名字以及数组中的元素
        System.out.println(arr);         
        System.out.println(arr[0]);         //输出结果为10
        System.out.println(arr[1]);         //输出结果为20
        System.out.println(arr[2]);         //输出结果为30

    }
}




/*

        定义两个int类型的数组,分别输出数组名及元素。
        然后分别给数组中的元素赋值,分别再次输出数组名及元素。

*/


public class ArrayDemo3 {
    public static void main(String[] args) {


        //定义一个数组(动态初始化的方式)
        int[] arr1 = new int[3];
        arr1[0] = 11;
        arr1[1] = 22;
        arr1[2] = 33;
        System.out.println(arr1);
        System.out.println(arr1[0]);         //输出结果为11
        System.out.println(arr1[1]);         //输出结果为22
        System.out.println(arr1[2]);         //输出结果为33




        //定义第二个数组(动态初始化的方式)
        int[] arr2 = new int[4];
        arr2[0] = 44;
        arr2[1] = 55;
        arr2[2] = 66;
        System.out.println(arr2);
        System.out.println(arr2[0]);         //输出结果为44
        System.out.println(arr2[1]);         //输出结果为55
        System.out.println(arr2[2]);         //输出结果为66
        System.out.println(arr2[3]);         //输出结果为0

    }
}




/*
        定义两个数组,先定义一个数组,赋值,输出。
        然后定义第二个数组的时候把第一个数组的地址赋值给第二个数组。
        然后给第二个数组赋值,再次输出两个数组的名字及元素。

*/
public class ArrayDemo4 {
    public static void main(String[] args) {


        //定义一个数组
        int[] arr = new int[3];
        arr[0] = 11;
        arr[1] = 22;
        arr[2] = 33;
        System.out.println(arr);         //输出结果为[I@4554617c
        System.out.println(arr[0]);         //输出结果为11
        System.out.println(arr[1]);         //输出结果为22
        System.out.println(arr[2]);         //输出结果为33
        System.out.println("====================");




        //然后定义第二个数组的时候把第一个数组的地址赋值给第二个数组。
        int[] arr2 = arr;


        //然后给第二个数组赋值,再次输出两个数组的名字及元素。
        arr2[0] = 100;
        arr2[1] = 200;

        System.out.println(arr);         //输出结果为[I@4554617c
        System.out.println(arr[0]);         //输出结果为100
        System.out.println(arr[1]);         //输出结果为200
        System.out.println(arr[2]);         //输出结果为33
        System.out.println("====================");
        System.out.println(arr2);         //输出结果为[I@4554617c
        System.out.println(arr2[0]);         //输出结果为100
        System.out.println(arr2[1]);         //输出结果为200
        System.out.println(arr2[2]);         //输出结果为33

    }
}
posted @ 2021-11-29 19:29  赤兔胭脂小吕布  阅读(228)  评论(0编辑  收藏  举报