当前位置:网站首页 > 编程语言 > 正文

改变数组中元素的值(数组元素可以改变的数组称为)




  • 数组就是一个容器用来存一批同种类型的数据
  • 在日常编写程序时,遇到批量数据的存储和操作时,数组比变量更合适

  • 定义数组的时候直接给数组赋值

静态初始化数组的格式:

 
  • 注意数据类型 [] 数组名也可以写成数据类型 数组名[];各类型的数组只能存放相应类型的数据。

数组在计算机中的基本原理:

  • 数组变量名中存储的是数组在内存中的地址,数组是一种引用数据类型
  • 定义如下数组,然后内存中会有这样的运行逻辑
 

在这里插入图片描述

数组的访问

  • 数组访问格式:
 
  • 数组的长度属性:length
 
  • 表示数组的最大索引:
 
  • 注意:如果访问数组时,使用的索引超过了数组最大索引时,执行程序会出现bug,出现一个索引越界的异常提示

数组的遍历:

  • 遍历:就是一个一个数据的访问
  • 遍历数组的应用:求和、元素搜索、找最大值、最小值等,例如:
 

案例:数组遍历 - 求和

  • 需求:某部门 5 名员工的销售额分别是:16、26、36、6、100,请计算出他们部门的总销售额
  • 分析:

① 把这5个数据拿到程序中去 —> 使用数组

② 遍历数组中的每个数据,然后在外面定义求和变量把他们累加起来。

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

动态初始化数组的格式:

 

在这里插入图片描述

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

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

数据类型明细默认值基本类型byte、short、char、int、long0float、double0.0booleanfalse引用类型类、接口、数组、Stringnull

两种数组定义的方法各自适合的业务场景:

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

案例:评委打分

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

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

②遍历数组中的每个位置,每次提示用户录入一个评委的分数,并存入到数组对应的位置
③遍历数组中的每个元素进行求和,最终算出平均分打印出来即可

  • 解决:
    在这里插入图片描述
  • 代码:
 

案例:成绩数据分析

  • 需求:某班级学生 Java 考试成绩是:99,100,62,15,48,65,98,99,5,59.5,75;请统计及格学生总人数
  • 分析:

①把这一批成绩数据放到程序中去 —> 使用静态初始化的数组组装起来

②使用 for 循环遍历数组中的每个成绩,并在循环外定义一个计数变量 count
③每遍历一个数据,判断该数据是否大于等于 60 分,满足条件则让 count 加 - 解决:
在这里插入图片描述

  • 代码:
 

在这里插入图片描述

Java 内存分配介绍:

  • 运行一个 Java 程序,主要看 JVM 中包含的方法区、栈内存、堆内存
    在这里插入图片描述

数组在计算机中的执行原理:

  • 首先我们拿一段程序举例:
 
  • 输出结果如下:

10
[I@119d7047]
22
44
55
66

  • 运行逻辑:
    在这里插入图片描述
  • int a = 20; int[] arr = new int[3] 这两行代码的执行原理:
  • a 是变量,直接放在栈中,a 变量中的存储的数据就是 20 这个值。
  • new int [3] 是创建一个数组对象,会在堆内存中开辟区域存储3个整数
  • arr 是变量,在栈中,arr 中存储的是数组对象在堆内存中的地址值。
  • 同样,我们也拿一段程序举例:
 
  • 输出结果如下:

[I@4c
[I@4c
99

  • 运行逻辑:
    在这里插入图片描述
  • 如果某个数组变量存储的地址是null,那么该变量将不再指向任何数组对象,例如:
 
  • 如果某个数组变量中存储的 null,代表这个数组变量没有指向数组对象,可以输出这个变量,但是不能用这个数组变量去访问数据或者访问数组长度,会报空指针异常:NullPointerException

  • 需求:求5名同学成绩中的最大值并输出
  • 分析:

①把 5 名同学的成绩拿到程序中去,用数组装起来
②定义一个变量用于记录最终的最大值
③从第二个位置开始:遍历数组的数据,如果遍历的当前数据大于 max 变量的存储的数据,则替换变量存储的数据为当前数据
④循环结束后输出 max 变量即可

  • 解决:
    在这里插入图片描述
  • 代码:
 
  • 需求:某个数组有五个数据:1,2,3,4,5,请将这个数组中的数据进行反转
  • 分析:

①使用循环,控制让数组的前后位置的元素依次交换;
②定义一个临时变量记住 arr[i] 位置处的元素;
③再把 arr[j] 的元素赋值给 arr[i]
④最后把临时变量记住的 arr[i] 的元素赋值给 arr[j]。

  • 解决:
    在这里插入图片描述
  • 代码:
 
  • 需求:某公司开发部 5 名开发人员,要进行项目汇报演讲,现在采取随机排名后进行汇报,请先依次录入 5 名员工的工号,然后展示出一组随机的排名顺序。
  • 分析:

在程序中录入 5 名员工的工号存储起来 --> 使用动态初始化数组的方式
依次遍历数组中的每个数据
每遍历到一个数据,都随机一个索引值出来,让当前数据与该索引位置处的数据进行交换。

  • 解决:
    在这里插入图片描述

到此这篇改变数组中元素的值(数组元素可以改变的数组称为)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 制作dos启动u盘需要多大u盘(制作dos启动u盘需要多大u盘容量)2025-03-02 18:27:07
  • a标签设置不能点击(a标签设置不可点击)2025-03-02 18:27:07
  • 卡巴斯基个人版多少钱(卡巴斯基买哪个版本)2025-03-02 18:27:07
  • ubuntuiso镜像下载(ubuntu镜像文件iso下载)2025-03-02 18:27:07
  • ip地址换了手机还一样吗(ip地址换了手机还一样吗怎么回事)2025-03-02 18:27:07
  • 反编译exe文件成源码(反编译ex4文件)2025-03-02 18:27:07
  • 幼儿园游戏的分类心得体会(幼儿园游戏的分类心得体会怎么写)2025-03-02 18:27:07
  • max30102芯片引脚图(max3081引脚图)2025-03-02 18:27:07
  • u盘制作启动盘后怎么恢复(制作了u盘启动的u盘 怎么恢复)2025-03-02 18:27:07
  • 记叙文写作|第5课:拟题好方法一级记叙文写作|第5课:拟题好方法二级记叙文写作|第5课:拟题好方法三级记叙文写作|第5课:拟题好方法是什么意思(一级记叙文写作|第5课:拟题好方法二级记叙文写作|第5课:拟题好方法三级记叙文写作|第5课:拟题好方法例子)2025-03-02 18:27:07
  • 全屏图片