Java基础学习-数组

目录

数组定义

注意点:

地址值是数组在内存中实际存储的地址。

案例遍历:遍历数组得到每一个元素,求数组里面所有数据和

案例:定义数组,遍历能被3整除的数字

案例:遍历一个数组,奇数将当前值扩大两倍,偶数当前数变为原来1/2

数组的动态的初始化:

案例:定义动态数组

案例:求最值:求最大值求最小值

案例:生成10个1-100之间的随机数存入数组,求所有数据的和,数据的平均数,多少数据比平均值小

案例:交换数组中的数据:

案例:打乱数组中的数据:

Java内存分布:


数组定义

注意点:

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

数组一旦创建完毕,数组的长度就不会在发生变化了。

地址值是数组在内存中实际存储的地址。

arr.lenth是数组的长度。

自动快速生成数组遍历的方式:用IDEA:数组名.fori就可以快速生成。

案例遍历:遍历数组得到每一个元素,求数组里面所有数据和

package textwj;
//遍历数组得到每一个元素,求数组里面所有数据和
public class text11 {
    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+=arr[i];
            //输出数组里面每一项的数
            System.out.println("数组第"+"i"+"位的值为:"+arr[i]);
        }
        System.out.println("数组每一项加起来的和:"+sum);
    }
}

案例:定义数组,遍历能被3整除的数字

package textwj;
//定义数组,遍历能被3整除的数字
public class text13 {
    public static void main(String[] args) {
        //定义一个数组,存1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
        int[]arr = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
        //遍历数组得到每一个元素
        int sum = 0;
        System.out.println("数组中是3的倍数的是:");
        for (int i = 0; i < arr.length; i++) {
            //判断元素是否为3的倍数,如果是
            if (arr[i] % 3 == 0) {
                System.out.println(arr[i]);
                sum++;
            }
        }
        System.out.println("总共有"+sum+"个数是3的倍数");
    }
}

案例:遍历一个数组,奇数将当前值扩大两倍,偶数当前数变为原来1/2

package textwj;
//遍历一个数组,奇数将当前值扩大两倍,偶数当前数变为原来1/2
public class text14 {
    public static void main(String[] args) {
        int[]arr = {1,2,3,4,5,6,7,8,9,10};
        //遍历每一个数,得到数
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] % 2 == 0) {
                //偶数
                System.out.println("偶数/2"+"  "+arr[i]/2);
            }else {
                //奇数
                System.out.println("奇数*2"+"  "+arr[i]*2);
            }
        }
    }
}

数组的动态的初始化:

案例:定义动态数组

数组静态初始化和动态初始化区别

数组内存图:下一个阶段在学。

案例:求最值:求最大值求最小值

package textwj;

import java.util.Scanner;

//定求最大值
public class text15 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入数组中的5个数值");
        int n = sc.nextInt();
        int m = sc.nextInt();
        int k = sc.nextInt();
        int l = sc.nextInt();
        int r = sc.nextInt();
        int[] arr = new int[5];
        int max=arr[0];

        for (int i = 0; i < arr.length; i++) {
            if (i==0){
                arr[i] = n;
            } else if (i==2) {
                arr[i] = m;
            } else if (i==3) {
                arr[i] = k;
            }else if (i==4) {
                arr[i] = l;
            }else{
                arr[i] = r;
            }

        }
        for (int i=0;i<5;i++){
            if (arr[i]>max){
                max=arr[i];
            }

        }
        int min=arr[0];
        for (int i=0;i<5;i++){
            if (arr[i]<min){
                min=arr[i];
            }
        }
        System.out.println("最大值是");
        System.out.println(max);
        System.out.println("最小值是");
        System.out.println(min);

    }
}

案例:生成10个1-100之间的随机数存入数组,求所有数据的和,数据的平均数,多少数据比平均值小

package textwj;

import java.util.Random;

//生成10个1-100之间的随机数存入数组,求所有数据的和,数据的平均数,多少数据比平均值小
public class text16 {
    public static void main(String[] args) {
        int[] a = new int[10];
        Random rand = new Random();
        for (int i = 0; i < 10; i++) {
            //赋值1-100之间的数,所以末尾加1
            a[i] = rand.nextInt(100) + 1;
        }
        System.out.println("生成的数是");
        for (int i = 0; i < a.length; i++) {
            int j = 0;
            j = i + 1;
            System.out.println("生成你的第" + j + "数为: " + a[i]);
        }
        //求平均数
        int sum = 0;//总和
        for (int i = 0; i < a.length; i++) {
            sum =sum+a[i];
        }
        System.out.println("平均数为" + sum / 10);
        //哪些数比平均数小
        int count = 0;//计数
        System.out.println("比平均值小的数为:");
        for (int i = 0; i < a.length; i++) {
            if (a[i] < sum/10) {
                System.out.println(a[i]);
                count++;
            }

        }
        System.out.println("比平均数小的总共为" + count + "个");
    }
}

案例:交换数组中的数据:

package textwj;
//数组倒序交换
public class text17 {
    public static void main(String[] args) {
        int[]a={1,2,3,4,5};
        for (int i = 0,j=a.length - 1; i<j;i++,j--) {
    //交换指向元素
            int k=a[i];
            a[i]=a[j];
            a[j]=k;
        }
        for (int i=0;i<a.length;i++) {
            System.out.println(a[i]);
        }
    }
}

案例:打乱数组中的数据:

package textwj;

import java.util.Random;

public class text18 {
    public static void main(String[] args) {
        int[]a={1,2,3,4,5};
        Random rand = new Random();
        int random=rand.nextInt(a.length);
        System.out.println(random);
        for (int i = 0; i < a.length; i++) {
            int temp=a[i];
            a[i]=a[random];
            a[random]=temp;
        }
        //验证
        for (int i = 0; i < a.length; i++) {
            System.out.println(a[i]);
        }
    }
}

Java内存分布:

数组终于学完了

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值