Java初接触 | 数组【定义、遍历】

101 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12月更文挑战」的第11天

数组

数组——用来存储一批同种类型数据的内存区域(可以理解成容器)

例:
20, 10, 80, 60, 90
int[] arr = {20, 10, 80, 60, 90};

int:数据类型
[]:数组
arr:数组名

数组适合做一批同种类型数据的存储

数组的定义

静态初始化数组

定义:定义数组的时候直接给数组赋值
格式:
image.png

示例:

// 目标:学会使用静态初始化的方式定义数组
// 数据类型[] 数组名称 = new 数据类型[]{元素1,元素2,...}
// double[] scores = new double[]{99.5, 88.0, 75.5};
double[] scores = {99.5, 88.0, 75.5}; // 简化写法

// int[] ages = new int[]{12, 24, 36};
int[] ages = {12, 24, 36};

// String[] names = new String[]{"牛二", "全蛋儿", "老王"};
String[] names = {"牛二", "全蛋儿", "老王"};

数组的基本原理
image.png
注意:数组变量名中存储的是数组在内存中的地址,数组是引用类型。

数组的访问

image.png

        // 目标:学会访问数组的元素
        int[] ages = {12, 24, 36};
        //            0    1   2

        // 取值: 数组名称[索引]
        System.out.println(ages[0]);
        System.out.println(ages[1]);
        System.out.println(ages[2]);

        // 赋值:数组名称[索引] = 数据;
        ages[2] = 100;
        System.out.println(ages[2]);

        // 访问数组的长度
        System.out.println(ages.length);

//        int[] arr = {};
//        System.out.println(arr.length - 1);

数组的几个注意事项

  • 数据类型[] 数组名”也可以写成 “数据类型 数组名[] ”。
    image.png

  • 什么类型的数组存放什么类型的数据,否则报错。
    int[] arrs = new int[]{30,40,"你好"}(错)

  • 数组一旦定义出来,程序执行的过程中,长度、类型就固定了

// 目标:理解数组的注意事项
// 1、数据类型[] 数组名称 也可以写成 数据类型 数组名称[]
int[] ages = {11, 23, 45};
// int ages1[] = {11, 23, 45};

// 2、什么类型的数组只能存放什么类型的元素
// String[] names = {"西门吹雪", "独孤求败", 23}; // 错误的

// 3、数组一旦定义出来之后,类型和长度就固定了
int[] ages2 = {11, 23, 45};
System.out.println(ages2[3]); // 报错! 长度固定是3了不能访问第4个元素!!

动态初始化数组

定义:定义数组的时候只确定元素的类型和数组的长度,之后再存入具体数据。 格式:
image.png

示例:

// 目标:学会动态初始化数组的定义和使用。
double[] scores = new double[3]; // [0.0, 0.0, 0.0]
//                                    0    1    2

// 赋值
scores[0] = 99.5;
System.out.println(scores[0]);

System.out.println(scores[2]);


String[] names = new String[90];
names[0] = "迪丽热巴";
names[2] = "马尔扎哈";
System.out.println(names[0]);
System.out.println(names[1]);
System.out.println(names[2]);

两种数组定义时的特点和场景
当前已经知道存入的元素值,用静态初始化
当前还不清楚要存入哪些数据,用动态初始化

动态初始化数组的元素默认值

元素默认值规则
image.png

两种初始化的的使用场景总结、注意事项说明:

  • 动态初始化:只指定数组长度,后期赋值,适合开始知道数据的数量,但是不确定具体元素值的业务场景。
  • 静态初始化:开始就存入元素值,适合一开始就能确定元素值的业务场景。
  • 两种格式的写法是独立的,不可以混用。

数组的遍历

遍历:一个一个数据的访问
image.png

示例:

// 目标:学会进行数组元素的遍历
        int[] arr = {12, 24, 12, 48, 98};
        //           0    1   2   3   4

        // 原始遍历方式
//        System.out.println(arr[0]);
//        System.out.println(arr[1]);
//        System.out.println(arr[2]);
//        System.out.println(arr[3]);
//        System.out.println(arr[4]);

//        for (int i = 0; i < 5; i++) {
//            System.out.println(arr[i]);
//        }

        // 终极数组遍历形式
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }