Java基础-数组1

数组

概述

  • 一次性声明大量的用于存储数据的变量

  • 要存储的数据通常都是同类型数据,例如:考试成绩

  • int[] scores = [100,100,100,…,100];

数组(array):是一种用于存储多个相同数据类型的存储模型(可以理解为容器)

定义格式

//格式1
数据类型[] 变量名;
int[] arr;
//格式2
数据类型 变量名[];
int arr[];

推荐使用格式1

数组初始化概述
  • Java中的数组必须先初始化,然后才能使用

  • 所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值

  • 注意:数组中的每一个数据,我们称之为数组中的元素

静态初始化

初始化时,制定每个数组元素的初始值,由系统决定数组长度

数据类型[] 变量名 = new 数据类型[]{数据1,数据2,数据3,...};
int[] arr = new int[]{1,2,3};
//简化格式
数据类型[] 变量名 = 数据1,数据2,数据3,...};
int[] arr = {1,2,3};
动态初始化

初始化时只指定数组长度,有系统为数组分配初始值

数据类型[] 变量名 = new 数据类型[数组长度];//格式
int[] arr = new int[3]; //范例
import java.util.Random;

public class Main {
    public static void main(String[] args) {
        //格式化:数据类型[] 变量名 = new 数据类型[数组长度];
        int[] arr = new int[3];

        //输出数组名
        System.out.println(arr);

        //输出数组中的元素
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
}


[I@7ef20235 //arr的地址值
0 //int数据默认为0
0
0

使用场景:

  • 静态初始化:开始就存入元素值,适合一开始就能确定元素值的业务场景

  • 动态初始化:指定数组长度,后期赋值,适合开始知道数据的数量,但是不确定具体元素值的业务场景

  • 注意:两种初始化的方式是独立的,不可以混用

数组元素访问

数组变量访问方式

格式:数组名

数据内部保存的数据的访问方式
//格式
数据名[索引] 
arry[0]

索引:

索引是数组中数据的编号方式,索引用于访问数组中数据来使用,数组名[索引]等同于变量名,是一种特殊的变量名

特征①:索引从0开始

特征②:索引是连续的

特征③:索引逐一增加,每次加1

public class Main {
    public static void main(String[] args) {
        
        int[] arr ={1,2,3}; //定义一个数组,并对其初始化
        //输出数组名
        System.out.println(arr);
        
        //输出数组中的元素
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);
        
        //修改数组中的元素
        arr[0] = 100;
    }
    
}

数组遍历

获取数组中的每一个元素,我们可以把获取到的元素输出在控制台

public class Main {
    public static void main(String[] args) {

        int[] arr ={1,2,3}; //定义一个数组,并对其初始化
        //输出数组名
        System.out.println(arr);

        //遍历数组中的元素,用循环
        for (int i = 0;i<arr.length;i++){ //arr.length为获取数组长度的属性,格式:数组名.length
            System.out.println(arr[i]);
        }
    }

}

注意:数组便利指的是把数组中的元素取出来,取出来之后,可以(打印,求和,判断等等)

获取最值

思路

  1. 定义一个变量,用于保存最大值(最小值),取数组中第一个数据作为变量的初始值
int max = arr[0];
  1. 与数组中剩余的数据逐个比对
for(int x = 1;x<arr.length;x++){
if(max<arr[x]) //对比数据
  max = arr[x]; //如果大,就完成替换
}

元素打乱

元素打乱:把数组中的元素随机交换位置,每次运行都可能产生不一样的结果

比如 arr={1,2,3,4};

遍历

正常情况下:1,2,3,4

元素打乱后:2,3,1,4

涉及到的操作

1.获取数组元素中的随机索引

Random r = new Random(); //创建一个新的Random对象
int index = r.nextInt(arr.length);//得到一个索引,索引的取值范围为0~arr.length-1

2.数组中元素交换

//创建一个整数型变量,并赋值为arr[0]
int temp = arr[0];
//数据交换
arr[0] = arr[1];
arr[1] = temp;
import java.util.Random;

public class Main {
    public static void main(String[] args) {

        int[] arr ={1,2,3}; //定义一个数组,并对其初始化

        Random r = new Random();
        int index = r.nextInt(arr.length);

        //第一次交换
        int temp = arr[0];
        arr[0] = arr[index];
        arr[index] = temp;

        //遍历:arr.fori + enter = for (int i = 0; i < arr.length; i++){}
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值