【Java】数组的常见操作以及数组作为方法参数和返回值

简介: 本期主要介绍数组的常见操作以及数组作为方法参数和返回值

1. 数组的常见操作


1.1 数组越界异常


观察一下代码,运行后会出现什么结果。

image.png-

创建数组,赋值 3 个元素,数组的索引就是 0 , 1 , 2 ,没有 3 索引,因此我们不能访问数组中不存在的索引,程序运行后,将会抛出 ArrayIndexOutOfBoundsException 数组越界异常。在开发中,数组的越界异常是 不能出现 的,一旦出现了,就必须要修改我们编写的代码。

image.png

1.2 数组空指针异常


观察一下代码,运行后会出现什么结果。

image.png

arr = null 这行代码,意味着变量 arr 将不会在保存数组的内存地址,也就不允许再操作数组了,因此运行的时候会抛出 NullPointerException 空指针异常。在开发中,数组的越界异常是 不能出现 的,一旦出现了,就必须要修改我们编写的代码。

image.png

空指针异常在内存图中的表现

image.png

1.3 数组遍历【重点】


数组遍历: 就是将数组中的每个元素分别获取出来,就是遍历。遍历也是数组操作中的基石。

image.png

以上代码是可以将数组中每个元素全部遍历出来,但是如果数组元素非常多,这种写法肯定不行,因此我们需要改造成循环的写法。数组的索引是 0 到 lenght - 1 ,可以作为循环的条件出现。

image.png

1.4 数组获取最大值元素


最大值获取:从数组的所有元素中找出最大值。

实现思路:

定义变量,保存数组 0 索引上的元素

遍历数组,获取出数组中的每个元素

将遍历到的元素和保存数组 0 索引上值的变量进行比较

如果数组元素的值大于了变量的值,变量记录住新的值

数组循环遍历结束,变量保存的就是数组中的最大值

image.png

image.png

1.5 数组反转

数组的反转: 数组中的元素颠倒顺序,例如原始数组为 1,2,3,4,5 ,反转后的数组为 5,4,3,2,1

实现思想: 数组最远端的元素互换位置。

实现反转,就需要将数组最远端元素位置交换

定义两个变量,保存数组的最小索引和最大索引

两个索引上的元素交换位置

最小索引 ++ ,最大索引 -- ,再次交换位置

最小索引超过了最大索引,数组反转操作结束

image.png

image.png

2. 数组作为方法参数和返回值


2.1 数组作为方法参数


以前的方法中我们学习了方法的参数和返回值,但是使用的都是基本数据类型。那么作为引用类型的数组能否作为方法的参数进行传递呢,当然是可以的。

数组作为方法参数传递,传递的参数是数组内存的地址。

image.png

image.png

2.2 数组作为方法返回值


数组作为方法的返回值,返回的是数组的内存地址

image.png

image.png

2.3 方法的参数类型区别


代码分析


1. 分析下列程序代码,计算输出结果。

image.png

2. 分析下列程序代码,计算输出结果。

image.png

总结:

方法的参数为基本类型时,传递的是数据值. 方法的参数为引用类型时,传递的是地址值

相关文章
|
1天前
|
Java
判断不为空和不为空串的方法java
判断不为空和不为空串的方法java
|
1天前
|
存储 NoSQL 安全
java 中通过 Lettuce 来操作 Redis
java 中通过 Lettuce 来操作 Redis
java 中通过 Lettuce 来操作 Redis
|
1天前
|
分布式计算 DataWorks Java
DataWorks操作报错合集之在使用MaxCompute的Java SDK创建函数时,出现找不到文件资源的情况,是BUG吗
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
12 0
|
1天前
|
Java 测试技术 Python
《手把手教你》系列技巧篇(三十六)-java+ selenium自动化测试-单选和多选按钮操作-番外篇(详解教程)
【4月更文挑战第28天】本文简要介绍了自动化测试的实战应用,通过一个在线问卷调查(<https://www.sojump.com/m/2792226.aspx/>)为例,展示了如何遍历并点击问卷中的选项。测试思路包括找到单选和多选按钮的共性以定位元素,然后使用for循环进行点击操作。代码设计方面,提供了Java+Selenium的示例代码,通过WebDriver实现自动答题。运行代码后,可以看到控制台输出和浏览器的相应动作。文章最后做了简单的小结,强调了本次实践是对之前单选多选操作的巩固。
7 0
|
1天前
|
Java API
【亮剑】Java的List,如何删除重复的元素,教你三个方法搞定!
【4月更文挑战第30天】本文介绍了三种Java中删除List重复元素的方法:1) 使用HashSet,借助其不允许重复值的特性;2) 利用Java 8 Stream API的distinct()方法;3) 对自定义对象重写equals()和hashCode()。每种方法都附带了代码示例,帮助理解和应用。
|
1天前
|
存储 Java 索引
Java数组
Java数组
9 0
|
1天前
|
存储 算法 Java
【Java探索之旅】掌握数组操作,轻松应对编程挑战
【Java探索之旅】掌握数组操作,轻松应对编程挑战
9 0
|
1天前
|
存储 Java C语言
【Java探索之旅】基本类型与引用类型 数组的应用 二维数组
【Java探索之旅】基本类型与引用类型 数组的应用 二维数组
10 0
|
1天前
|
存储 机器学习/深度学习 Java
【Java探索之旅】数组使用 初探JVM内存布局
【Java探索之旅】数组使用 初探JVM内存布局
9 0
|
1天前
|
存储 Java 编译器
【Java探索之旅】数组概念与初始化指南:动静结合
【Java探索之旅】数组概念与初始化指南:动静结合
9 0