一. 数组的概念(重点)

数组是一种容器,可以同时存放多个数据值

1. 如何定义数组

(1) 动态初始化
数据类型[] 数组名 = new 数据类型[长度];// 必须制定长度, 长度是固定的.// 等号左右的数据类型必须是相同的解析含义:  左侧数据类型:也就是数组当中保存的数据,全都是统一的什么类型  左侧的中括号:代表我是一个数组  左侧数组名称:给数组取一个名字  右侧的new:代表创建数组的动作  右侧数据类型:必须和左边的数据类型保持一致  右侧中括号的长度:也就是数组当中,到底可以保存多少个数据,是一个int数字

适用于只知道数组的长度, 还不知道内容, 具体的内容, 下面再赋值

(2) 静态初始化
数据类型[] 数组名 = new 数据类型[] {元素1, 元素2, 元素3 ...};//注意:中括号中不要写长度

适用于创建数组的时候, 已经知道数组中要存放什么元素, 就直接把元素放到数组中.

(3) 第三种格式

是第二种的简化形式

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

二. 数组的使用(重点)

1. 数组的下标:

* 访问数组里面的元素,通过下标来进行访问      

            数组名[下标]

* 注意:下标从0开始--数组的长度-1

* 获取数组的长度:数组名.length   长度是一个int类型的数字

2. 使用下标

格式

数组名[下标] : 获取数组中指定索引位置的元素.

操作格式

对这个下标位置的元素进行赋值.

数组名[下标] = 值;

输出打印数组中指定索引位置的元素

System.out.println(数组名[下标]);

将数组中指定索引位置的元素, 赋值给其他的变量

数据类型 变量名  =  数组名[下标];

3. 数组的长度

数组名.length第一个元素的下标: 0最后一个元素的下标: 数组名.length - 1

三. 数组的操作(数组值交换时应该用带下标交换,不能直接用数值交换)

1. 数组使用时遇到的异常

(1) 数组索引越界异常
  • 产生的原因: 访问了不存在的索引
(2) 空指针异常
  • 产生的原因: 使用了null数组

2. 数组的遍历(重点)

遍历: 获取数组中的每一个元素

int[] arr = {1, 2, 3, 4, 5};/*  遍历: 获取数组中的每一个元素  arr[0], arr[1], arr[2], arr[3], arr[4]      ↓    获取数组中的每一个索引      ↓    索引是从0开始, 到长度 - 1        ↓    for循环, 可以获取从n开始到m        ↓让for循环中i的变化量, 和数组的索引一一对应*/// 让for循环中i的变化量, 和数组的索引一一对应// 0 ~ arr.length - 1for (int i = 0; i < arr.length; i++) {    // 将i当成数组的索引    System.out.println(arr[i]);}

3. 数组获取最大值

public class Demo02_获取最大值 {    public static void main(String[] args) {        int[] arr = {5, 15, 2000, 10000, 100, 4000};        // 定义变量, 用来记录临时最大值        // max的初始值, 设置为数组中第一个元素        int max = arr[0];        // 遍历        // 为了提高效率, 将i初始值设置为1        for (int i = 1; i < arr.length; i++) {            // 比较            // 如果遍历出来的元素(arr[i]), 比临时最大值(max)还大            if (arr[i] > max) {                // 将遍历出来的元素, 赋值给临时最大值                max = arr[i];            }        }        System.out.println("最大值为: " + max);    }

4. 数组的反转

public class Demo03_数组的反转 {    public static void main(String[] args) {        int[] arr = {1, 2, 3, 4, 5, 6, 7};        // 交换        for (int i = 0; i < arr.length / 2; i++) {            // 交换的是  i  ~ arr.length - 1 - i            // 交换的规律: 首尾相连            // 定义第三方变量            int temp = arr[i];            arr[i] = arr[arr.length - 1 - i];            arr[arr.length - 1 - i] = temp;        }        // 遍历打印        for (int i = 0; i < arr.length; i++) {            System.out.println(arr[i]);        }    }}