网站首页 > java教程 正文
一:越界异常
看如下代码
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-09-27 Java教程惊喜第五弹:数组(java数组基础知识)
- 2024-09-27 Java数组入门:定义和使用指南(零基础)
- 2024-09-27 Java入门到架构师教程之JavaScript数组和数组操作方法
- 2024-09-27 数组的简单入门(数组的几种方法)
- 2024-09-27 全新Java入门到架构师教程之二维数组及其初始化、遍历方式
- 2024-09-27 Java中Arrays类中的数组操作方法详解
- 2024-09-27 Java开发课程(九)——数组(java数组基础知识)
- 2024-09-27 java互联网架构师,教你学java基本的程序设计结构:大数值+数组
- 2024-09-27 什么是数组?java数组(java数组是啥)
- 2024-09-27 Java入门教程:什么是数组?如何掌握数组?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)