JavaSE——数组(1/2)-数组的定义和访问(静态初始化数组、动态初始化数组、案例练习)

目录

数组的定义和访问

静态初始化数组

数组的访问

数组的遍历

案例练习

动态初始化数组

案例练习


数组是什么

  • 数组就是一个容器,用来存储一批同种类型的数据

例子:

20,10,80,60,90

int[ ] arr = {20,10,80,60,90};

牛二,西门,全蛋

String names = {"牛二","西门","全蛋"};

数组的应用让我们省去了大量的变量定义,使得代码更加简洁和逻辑清晰。

数组的定义和访问

静态初始化数组

静态初始化数组即定义数组的时候直接给数组赋值

静态初始化数组的格式:

完整格式

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

int[] ages = new int[]{1,2,3,4,5};

double scores = new double[]{89.9,99.9,85.7};

简化格式

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

int[] ages = {1,2,3,4,5};

注意

  • "数据类型[] 数组名" 也可写成 "数据类型 数组名[]"
  • 什么类型的数组只能存放什么类型的数据。 

数组变量名中存储的是数组在内存中的地址,数组是一种引用数据类型。

数组的访问

数组在计算机中的存储:

JavaSE——数组(1/2)-数组的定义和访问(静态初始化数组、动态初始化数组、案例练习)_第1张图片

访问数组:数组名[索引] 

取值

System.out.println(arr[0]);  //12

赋值 

arr[2] = 100;
System.out.println(arr[2]); //100

数组的长度属性:length 

//获取数组的长度(就是数组元素的个数)
System.out.println(arr.length);  //3

数组的最大索引:

System.out.println(arr.length - 1)  

 (前提是数组中要有元素)


1.如何访问数组的元素?

  • 数组名称[索引]

2.如何访问数组的长度?

  • 数组名称.length

3.数组的最大索引是多少?

  • 数组名.length-1   //前提:元素个数大于0

4.如果访问数组时,使用的索引超过了数组最大索引会出什么问题?

  • 执行程序时会出bug,出现一个索引越界的异常提示。

数组的遍历

什么是遍历?

  • 遍历:就是一个一个数据的访问。

为什么要遍历数组?

  • 求和
  • 元素搜索
  • 找极值

如何遍历?

int[] arges = {1,2,3,4,5};
for(int i = 0; i < arr.length; i++)
{
    System.out.println(arr[i]);
}

案例练习

需求:

  • 某部门5名员工的销售额分别是:16、26、36、6、100,请计算出他们部门的总销售额。
  1. 把这5个数据拿到程序中去 ---> 使用数组
    int[] money ={16, 26, 36, 6, 100};
  2. 遍历数组中的每个数据,然后在外面定义求和变量把他们累加起来。
public static void main(String[] args)
{
    //1.定义一个数组存储5名员工的销售额
    int[] meney = {16,26,36,6,100};

    //2.定义一个变量用于累加求和
    int sum = 0;

    //3.遍历这个数组
    for(int i = 0; i < money.length; i++)
    {
        sum += meney[i];
    }
    System.out.println("员工的销售总额:" + sum);
}

动态初始化数组

动态初始化数组即定义数组时先不存入具体的元素值,只确定数组存储的数据类型和数组的长度。

动态初始化格式:

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

int[] arr = new int[3];

再进行赋值

arr[0] = 10;
System.out.println(arr[0]);  //10 

注意:

静态初始化和动态初始化数组的写法是独立的,不可以混用。

动态初始化数组元素默认值规则:

数据类型 明细 默认值
基本类型 byte、short、char、in、long 0
float、double 0.0
boolean false
引用类型 类、接口、数组、String null

1、动态初始化数组的写法是什么样的?有什么特点?

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

int[] ages = new int[4];

2.动态初始化数组后元素的默认值是什么样的?

  • byte、short、int、char、long类型数组的元素默认值都是0
  • float、double类型数组元素的默认值都是0.0
  • boolean类型数组的元素默认值是false,String类型数组的元素的默认值是null

3、两种数组定义的方法各自适合什么业务场景?

  • 动态初始化:适合开始不确定具体元素值,只知道元素个数的业务场景。
  • 静态初始化:适合一开始就知道要存入哪些元素值的业务场景。

案例练习

需求:

  • 某歌唱比赛,需要开发一个系统:可以录入六名评委的打分,录入完毕后立即输出平均分做为选手得分。
  1. 六名评委的打分是后期录入的,一开始不知道具体的分数,因此定义一个动态初始化的数组存分数。
    double[] scores = new double[6];
  2. 遍历数组中的每个位置,每次提示用户录入一个评委的分数,并存入到数组对应的位置。
  3. 遍历数组中的每个元素进行求和,最终算出平均分打印出来即可。
import java.util.Scanner;

public class ArrayTest
{
    public static void main(String[] args)
    {
        //1.定义一个动态初始化数组,存储六个评委的打分
        double[] scores = new double[6];

        Scanner sc = new Scanner(System.in);
        int sum = 0;
        
        //2.遍历数组,录入评委的分数,存入数组中
        int i;
        for(i = 0; i < scores.length; i++)
        {
            System.out.println("请您输入当前第" + (i + 1) + "个评委的分数:");
            double score = sc.nextDouble();
            scores[i] = score;
            //对分数进行求和
            sum += scores[i];
        }
        System.out.println("选手最终得分是:" + sum / scores.length);
    }
}

END


学习自:黑马程序员——JavaSE课程 

你可能感兴趣的:(JavaSE,java,开发语言,学习,笔记)