Java基础之数组

数组

什么是数组:

指一种容器,用来储存同种类型的多个值

数组的定义:

image-20240405145036410

数组的初始化

静态初始化

初始化:就是在内存中,为数组容器开辟空间,并将数据存入容器中的过程

完整格式:数据类型[] 数组名=new 数据类型[]{元素1,元素2,元素3…};

范例:int[] array=new int[]{11,22,33 };

范例:double[]array2=new double[]{11.1,22.2,33.3};

image-20240405145627448

数组的地址值

image-20240405145827608

数组的元素访问

格式: 数组名:[索引]

索引:也叫下标,角标

索引的特点:从0开始,逐个+1增长,连续不间断

image-20240405145949171

image-20240405150118408

数组的遍历

数组遍历:将数组中所有的内容取出来,取出来之后可以(打印,求和,判断…)

注意:遍历指的是取出数据的过程,不要局限的理解为,遍历就是打印!

image-20240405150337282

image-20240405150430419

image-20240405150511176

练习:

遍历数组并求和
定义一个数组,存储1,2,3,4,5遍历数组得到每一个元素,求数组里面所有的数据和

public class Test1 {
    //遍历数组并求和
    //定义一个数组,存储1,2,3,4,5遍历数组得到每一个元素,求数组里面所有的数据和
    public static void main(String[] args) {
        int [] arr = {1,2,3,4,5,};
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum = sum + arr[i];
        }
        System.out.println("数组里面所有数据的和为:"+sum);
    }
}

练习2:

统计个数
定义一个数组,存储1,2,3,4,5,6,7,8,9,10遍历数组得到每一个元素,统计数组里面一共有多少个能被3整除的数字

public class Tests2 {
    public static void main(String[] args) {
        int [] arr = {1,2,3,4,5,6,7,8,9,10};
        int temp = 0;
        for (int i = 0; i < arr.length; i++) {
        if (arr[i] % 3 == 0){
            temp++;

        }
        }
        System.out.println("数组中能被3整除的数有"+temp+"个");
    }
}

数组的动态初始化

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

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

范例:int[] arr = new int[3]

image-20240405152351632

静态初始化和动态初始化的区别

动态初始化:

手动指定数组长度,由系统给出默认初始化值。

只明确元素个数,不明确具体数值,推荐使用动态初始化

举例:使用数组容器来存储键盘录入的5个整数

int[} arr={??? ? };

int[} arr = new int[5];

静态初始化:

手动指定数组元素,系统会根据元素个数,计算出数组的长度。

需求中已经明确了要操作的具体数据,直接静态初始化即可。

举例:将全班的学生成绩存入数组中11,22,33

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

数组常见问题

当访问了数组中不存在的索引,就会引发索引越界异常

数组的常见操作

求最值

需求:

已知数组元素为 {33,5,22,44,55}

请找出数组中最大值并打印在控制台

public class Tests3 {
    public static void main(String[] args) {
        //已知数组元素为 {33,5,22,44,55}
        //请找出数组中最大值并打印在控制台
        int[] arr = {33,5,22,44,55};
        int max = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] > max){
                max = arr[i];
            }
        }
        System.out.println(max);
    }
}

遍历数组求和

需求:生成10个1~100之间的随机数存入数组
1)求出所有数据的和
2)求所有数据的平均数
3)统计有多少个数据比平均值小

import java.util.Random;

public class Tests4 {
    public static void main(String[] args) {
        //需求:生成10个1~100之间的随机数存入数组
        //1)求出所有数据的和
        //2)求所有数据的平均数
        //3)统计有多少个数据比平均值小


        //生成随机一百以内的十个数
        int [] arr = new int[10];
        Random r = new Random();
        for (int i = 0; i < arr.length; i++) {
            int number = r.nextInt(100) + 1 ;
            arr[i] = number;
        }

        //将生成的数填入到数组中
        for (int i = 0; i < arr.length; i++) {
        }

        //求和
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum = sum + arr[i];
        }
        System.out.println("所有数据的和为:"+sum);

        //求平均数
        int avg = sum  / arr.length;
        System.out.println("数组中的平均数为:"+avg);

        //统计多少个数比平均数小
        int count = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] < avg){
                count++;
            }
        }
        System.out.println("数组中有"+count+"个数比平均数小");

        //遍历数组打印在控制台
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]+" ");

        }
    }

数组的内存图

java 的内存分配

image-20240405162321018

image-20240405162402263

  • 22
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值