什么是数组?数组的创建,数组的常用操作

文章介绍了数组的基本概念,作为存储同种类型数据的容器,数组在编程中广泛使用。文中详细阐述了数组的定义格式,包括静态和动态初始化方法,并提供了示例代码。此外,还讨论了数组的常见操作,如查找最大值、最小值、计算总和与平均值,以及处理数组索引越界和空指针异常的情况。
摘要由CSDN通过智能技术生成

1.什么是数组

介绍:数组本质就是一种存储数据的容器,可以存储同种类型的多个数据。

使用场景:发现要操作多个数据,并且多个数据是相同类型时,可以考虑使用数组来进行维护。

2.数组的定义格式

  • 数据类型[] 数组名;
    int[] arr;

  • 数据类型 数组名[];
    int arr[]

    需要注意的是,这两种定义格式定义出来的只是数据类型的变量,还没有创建容器。

3.数组的静态初始化

  • 完整版:
    数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3..};
    
    int[] arr = new int[]{11,22,33};
    

  •  简介版:
数据类型[] 数组名 = {元素1,元素2,元素3..};

int[] arr = {11,22,33};

 4.数组的动态初始化

在初始化数组的时候,只需要指定长度,系统就会分配初始值。

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

int[] arr=new int[10];

 5.静态初始化和动态初始化的对比

  • 区别: 动态初始化需要手动指定数组长度,系统分配默认值。静态初始化时,手动指定元素,系统计算出数组的长度。
  • 使用选择:个人认为如果要操作的数据,需求中已经明确告知,可以直接使用静态初始化。如果只明确元素个数,元素在程序运行时动态加入,可使用动态初始化数组。

6.数组的常见操作

/**
 * 已知班级成绩
 * 1.找出最大值并打印
 * 2.找出最小值并打印
 * 3.求总成绩并打印
 * 4.求平均成绩并打印
 * 5.统计低于平均数的元素个数
 */
public class Work05 {
    public static void main(String[] args) {
        int[] arr={112,22,33,44,55,66,77,99,120,66,88};
        //最大值
        int max=arr[0];
        for (int i = 1; i < arr.length; i++) {
            if (arr[i]>max){
                max=arr[i];
            }
        }
        System.out.println("最大值:"+max);
        //最小值
        int min=arr[0];
        for (int i = 1; i < arr.length; i++) {
            if (arr[i]<min){
                min=arr[i];
            }
        }
        System.out.println("最小值:"+min);

        //总数
        int sum=0;
        for (int i = 0; i < arr.length; i++) {
            sum+=arr[i];
        }
        System.out.println("总数:"+sum);
        //平均值
        double avg=sum*1.0/arr.length;
        System.out.println("平均值为:"+avg);
        //低于avg的个数
        int count=0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i]<avg){
                count++;
            }
        }
        System.out.println("低于平均值的个数为:"+count);
    }
}

7.数组常见问题

  • ArrayIndexOutOfBoundsException : 数组索引越界异常

    • 原因 : 访问了不存在的索引

  • NullPointerException : 空指针异常

    • 原因 : 当引用数据类型变量, 记录到null之后, 代表跟堆内存的连接被切断了

      这时候还要访问堆内存数据, 就会出现空指针异常

个人总结文章,欢迎指正交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值