Java基础--5.数组

一. 概述

​ **容器:**是将多个数据存储到一起,每个数据称为该容器的元素。

数组概念: 数组就是存储多个数据的容器,数组的长度固定,多个数据的数据类型要一致。

二. 数组的定义

2.1 方式一

数组存储的数据类型[] 数组名字 = new 数组存储的数据类型[长度];

数组定义格式详解:

​ 数组存储的数据类型: 创建的数组容器可以存储什么数据类型。

​ [] : 表示数组。

​ 数组名字:为定义的数组起个变量名,满足标识符规范,可以使用名字操作数组。

​ new:关键字,创建数组使用的关键字。

​ 数组存储的数据类型: 创建的数组容器可以存储什么数据类型。

​ [长度]:数组的长度,表示数组容器中可以存储多少个元素。

​ 注意:数组有定长特性,长度一旦指定,不可更改。

2.2 方式二

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

2.3 方式三

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

三. 数组的访问

索引: 每一个存储到数组的元素,都会自动的拥有一个编号,从0开始,这个自动编号称为数组索引

通过索引访问数组中的元素:

​ 数组名[索引],获取出数组中的元素

​ 数组名[索引] = 数值,为数组中的元素赋值

数组的长度属性: 每个数组都具有长度,而且是固定的,Java中赋予了数组的一个属性,可以获取到数组的 长度,语句为: 数组名.length ,属性length的执行结果是数组的长度,int类型结果。由次可以推断出,数组的最大索引值为 数组名.length-1 。

四. 数组的常见操作

4.1 数组异常

4.1.1 数组越界异常(ArrayIndexOutOfBoundsException)
public static void main(String[] args) { 
    int[] arr = {1,2,3}; 
    System.out.println(arr[3]); 
}
4.1.2 空指针异常(NullPointerException )
public static void main(String[] args) { 
    int[] arr = {1,2,3}; 
    arr = null; 
    System.out.println(arr[0]);

4.2 数组遍历

数组遍历: 就是将数组中的每个元素分别获取出来。遍历也是数组操作中的基石。

public static void main(String[] args) { 
    int[] arr = {11, 22, 33, 44};
    // 数组最小索引: 0 
    // 数组最大索引: arr.length ‐ 1 
    // 将4替换成arr.length,从0打印到arr.length‐1 
    for (int i = 0; i < arr.length; i++) { 
        System.out.println(arr[i]); 
    } 
}

4.3 数组获取最大值元素

​ **最大值获取:**从数组的所有元素中找出最大值。

实现思路:

​ 定义变量,保存数组0索引上的元素

​ 遍历数组,获取出数组中的每个元素

​ 将遍历到的元素和保存数组0索引上值的变量进行比较

​ 如果数组元素的值大于了变量的值,变量记录住新的值

public static void main(String[] args) { 
    int[] arr = {5, 15, 2000, 10000, 100, 4000}; 
    // 1.定义变量记录较大的值,先假定arr[0]是最大值 
    int max = arr[0]; 
    // 2.遍历拿到数组中的每个元素 
    for (int i = 0; i < arr.length; i++) {
        if (arr[i] > max) { 
            // 10000 
            max = arr[i]; 
        } 
    }
    // 4.输出最大值 
    System.out.println(max); 
}

4.4 数组反转

​ 数组的反转: 数组中的元素颠倒顺序,例如原始数组为1,2,3,4,5,反转后的数组为5,4,3,2,1

public static void main(String[] args) { 
    int[] arr = {11, 22, 33, 44, 55}; 
    // 定义变量记录小索引: start = 0 
    // 定义变量记录大索引: end = arr.length ‐ 1 
    // 循环终止条件: start < end 才需要交换位置 
    for (int start = 0, end = arr.length ‐ 1; start < end; start++, end‐‐) { 
        // 循环交换位置,利用第三方变量 
        int tmp = arr[start]; 
        arr[start] = arr[end]; 
        arr[end] = tmp; 
    }
    for (int i = 0; i < arr.length; i++) { 
        System.out.println(arr[i]); 
    } 
}

4.5 数组排序

数组排序: 将数组中的元素按照从小到大或从大到小的顺序排序

public static void main(String[] args) { 
    int[] arr = {0,1,5,4,2,3}; 
    for(int i = 0;i < arr.length;i++){
        for(int j = 0;j < arr.length;i++){
            //从小到大排序
            if(arr[i] < arr[j]){
                int tem = arr[i];
                arr[i] = arr[j];
                arr[j] = tem;
            }
        }
    }
}

4.6 数组作为参数

​ 数组作为方法参数传递,传递的参数是数组内存的地址。

4.7 数组作为方法返回值

​ 数组作为方法的返回值,返回的是数组的内存地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值