网站首页 > 精选教程 正文
一:越界异常
看如下代码
public static void main(String[] args) {
int[] arr = {1,2,3,4,5};
System.out.println(arr[5]);
}
创建数组,赋值5个元素,数组的索引就是0,1,2,3,4,5没有5索引,因此我们不能访问数组中不存在的索引,程序运行后,将会抛出 ArrayIndexOutOfBoundsException 数组越界异常。在开发中,数组的越界异常是不能出现的,一旦出现了,就必须要修改我们编写的代码,运行如下
二:空指针异常
看如下代码
public static void main(String[] args) {
int[] arr = {1,2,3,4,5};
arr = null;
System.out.println(arr[0]);
}
arr = null 这行代码,变量arr将不会在保存数组的内存地址,不允许再操作数组了,因此运行的时候抛出NullPointerException空指针异常。在开发中,数组的越界异常是不能出现的,一旦出现了,需要修改代码,运行如下
三:数组的遍历,重要
将数组中的每个元素分别获取出来。遍历也是数组操作中的基本。
案例
public static void main(String[] args) {
int[] arr = {1,2,3,4,5};
// 数组最小索引: 0
// 数组最大索引: arr.length ‐ 1
// 将5替换成arr.length,从0打印到arr.length‐1
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
运行结果
四:数组获取最大值
思路
1.定义变量,保存数组0索引上的元素
2.遍历数组,获取出数组中的每个元素
3.将遍历到的元素和保存数组0索引上值的变量进行比较
4.如果数组元素的值大于了变量的值,变量记录住新值
public static void main(String[] args) {
int[] arr = {100, 50, 30000, 1000, 20, 6000};
// 1.定义变量记录较大的值,假定arr[0]是最大值
int max = arr[0];
// 2.遍历拿出数组中的每个元素
for (int i = 0; i < arr.length; i++) {
// 3.如果arr[i]大于max,将max改成arrr[i]
if (arr[i] > max) {
max = arr[i];
}
}
// 4.输出最大值
System.out.println(max);
}
运行结果
五:数组的反转
数组中的元素颠倒顺序,例如原始数组为1,2,3,4,5,反转后的数组为5,4,3,2,1
也就是数组最远端的元素互换位置。
1.实现反转,需要将数组最远端元素位置交换
2.定义两个变量,保存数组的最小索引和最大索引
3.两个索引上的元素交换位置
4.最小索引++,最大索引--,再次交换位置
5.最小索引超过了最大索引,反转结束
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
// 定义变量记录小索引: start = 0
// 定义变量记录大索引: end = arr.length ‐ 1
// 循环终止条件: start < end 才需要交换位置
for (int start = 0, end = arr.length - 1; start < end; start++, end--) {
// 循环交换位置,利用第三方变量
int exc = arr[start];
arr[start] = arr[end];
arr[end] = exc;
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
运行结果
猜你喜欢
- 2024-11-13 面试:聊一聊 Java 数组默认的排序算法,我懵了
- 2024-11-13 golang2021数据格式(6)数组逆置 golang数组转字符串
- 2024-11-13 使用DeepClone沿数组对角线翻转180度
- 2024-11-13 深入理解 JavaScript 数组方法:从零实现 reverse 方法
- 2024-11-13 程序员面试算法题之数组[3],反转整数
- 2024-11-13 Vue短文:如何使用v-for反转数组的顺序?
- 2024-11-13 Java重学—进阶知识 java重点知识回顾
- 2024-11-13 关于数组,你必须要知道的几大算法
- 2024-11-13 python经典案例:将一个数组逆序输出
- 2024-11-13 shell中如何逆序打印数组的内容,或者反转一个数组?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)