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

简介: 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};

注意

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

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

数组的访问

数组在计算机中的存储:

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


取值

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


赋值

1. arr[2] = 100;
2. 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 

注意:

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

动态初始化数组元素默认值规则: 图片.png

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

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

int[] ages = new int[4];

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

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

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

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

案例练习

需求:

  • 某歌唱比赛,需要开发一个系统:可以录入六名评委的打分,录入完毕后立即输出平均分做为选手得分。

六名评委的打分是后期录入的,一开始不知道具体的分数,因此定义一个动态初始化的数组存分数。

double[] scores = new double[6];
  1. 遍历数组中的每个位置,每次提示用户录入一个评委的分数,并存入到数组对应的位置。
  2. 遍历数组中的每个元素进行求和,最终算出平均分打印出来即可。
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



目录
相关文章
|
6月前
|
Python
使用arange()函数创建数组
使用arange()函数创建数组。
113 1
使用范围函数来创建数组
在 Julia 中,可以使用省略号 `...` 或 `collect()` 函数创建数组。示例:`[0:10...]` 产生一个从 0 到 10 的整数向量。`collect(start:step:stop)` 允许自定义开始、步长和结束值,如 `collect(1:2:13)` 生成一个奇数向量。此外,`collect(element_type, range)` 可指定数组类型,如 `collect(Float64, 1:2:5)` 创建浮点型数组。
|
6月前
|
索引
初始化数组
【2月更文挑战第2天】初始化数组。
31 3
|
6月前
|
存储 Java 索引
【Java数组】数组定义 | 初始化赋值 | 数组练习题
【Java数组】数组定义 | 初始化赋值 | 数组练习题
声明数组和初始化数组
声明数组和初始化数组。
41 0
编写一个程序,初始化一个double类型的数组,然后把该数组的内容拷贝至3个其他数组中(在main()中声明这4个数组)。
编写一个程序,初始化一个double类型的数组,然后把该数组的内容拷贝至3个其他数组中(在main()中声明这4个数组)。
|
存储 Java 编译器
1.1 Java一维数组:数组的定义和初始化
1.1 Java一维数组:数组的定义和初始化
224 0
|
存储 机器学习/深度学习 Java
【JavsSE】数组的定义与使用
【JavsSE】数组的定义与使用
|
存储 索引 容器
数组的定义方式及访问
数组的定义方式及访问
111 0
|
存储 Java 索引
06 java一维数组必须掌握的4点内容【静/动态初始化、元素访问、遍历】
数组概念:是一个可以存储多个相同数据类型的数据的容器;
92 0