本文概述
- ArrayIndexOutOfBoundsException的构造方法
- 如何避免ArrayIndexOutOfBoundsException
ArrayIndexOutOfBoundsException是IndexOutOfBoundsException的子类, 它实现Serializable接口。
ArrayIndexOutOfBoundsException的示例
public class ArrayIndexOutOfBoundException { public static void main(String[] args) {
String[] arr = {"Rohit", "Shikar", "Virat", "Dhoni"};
//Declaring 4 elements in the String arrayfor(int i=0;
i<
=arr.length;
i++) {//Here, no element is present at the iteration number arr.length, i.e 4
System.out.println(arr[i]);
//So it will throw ArrayIndexOutOfBoundException at iteration 4
} }}
输出:
文章图片
ArrayIndexOutOfBoundsException的构造方法 以下类型的ArrayIndexOutOfBoundException构造函数是-
建设者 | 描述 |
---|---|
ArrayIndexOutOfBoundsException() | 它构造了ArrayIndexOutOfBoundsException, 没有任何细节显示在控制台中。 |
ArrayIndexOutOfBoundsException(int index) | 它使用指示索引是非法的索引变量构造ArrayIndexOutOfBoundsException |
ArrayIndexOutOfBoundsException(String s) | 它使用指定的详细消息构造ArrayIndexOutOfBoundsException。 |
- 引起ArrayIndexOutOfBoundsException的最大问题之一是数组的索引以0而不是1开头, 最后一个元素的数组长度为-1索引, 因此, 用户在访问数组的元素时通常会犯一个错误。数组。
- 在进行循环的开始和结束条件时请务必小心。
- 如果遇到任何此类异常, 请尝试调试代码。
- 使用增强的for循环增强的for循环是对连续内存分配进行迭代并且仅对合法索引进行迭代的循环。例如:-
public class ArrayIndexOutOfBoundException {public static void main(String[] args) {
ArrayList<
String>
listOfPlayers = new ArrayList<
>
();
listOfPlayers.add("Rohit");
listOfPlayers.add("Shikhar");
listOfPlayers.add("Virat");
listOfPlayers.add("Dhoni");
for(String val : listOfPlayers){
System.out.println("Player Name: "+val);
} }
}
- 使用类型安全的迭代器类型安全的迭代器在迭代集合并对其进行更改时不会抛出异常, 因为它们会为集合创建快照并对其进行更改。例如-
HashMap<
Integer, Integer>
map = new HashMap<
>
();
map.put(1, 1);
map.put(2, 2);
map.put(3, 3);
map.put(4, 4);
final Iterator<
Integer>
it = map.Keyset().iterator();
for (int i = 0;
it.hasNext();
i++)
{
System.out.println(it.next());
}
推荐阅读
- 什么是CompletableFuture()
- 从Oracle数据库检索图像的示例
- Android开发——diglog cancel与dismiss方法区别
- CSAPP 3e: Bomb lab (phase_4)
- 上传到App Store时5.5寸图和iPad pro图报错
- 酷划锁屏手机赚钱APP的使用经验分享
- 如何导出android内部存储的文件(不用root)
- Android开发——Toast知识
- CSAPP 3e: Bomb lab (phase_2) + lab中的GDB 使用