当使用ArrayList访问超出范围的索引时,会抛出IndexOutOfBoundsException异常。而HashSet则没有索引的概念,因此不会出现索引超出范围的问题。
下面是一个示例代码,演示了如何使用try-catch块来捕获ArrayList索引超出范围的异常,并进行相应的处理:
import java.util.ArrayList;
public class ArrayListExample {
public static void main(String[] args) {
ArrayList list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Orange");
try {
String fruit = list.get(3); // 尝试访问超出范围的索引
System.out.println(fruit);
} catch (IndexOutOfBoundsException e) {
System.out.println("索引超出范围");
}
}
}
在上述代码中,我们创建了一个包含三个元素的ArrayList,并尝试获取索引为3的元素。由于ArrayList的索引是从0开始的,因此索引3超出了范围。在try块中,我们尝试获取索引为3的元素,并在catch块中捕获IndexOutOfBoundsException异常,并打印出相应的错误消息。
相比之下,使用HashSet则不需要担心索引超出范围的问题。下面是一个示例代码,演示了如何使用HashSet来存储和获取元素:
import java.util.HashSet;
public class HashSetExample {
public static void main(String[] args) {
HashSet set = new HashSet<>();
set.add("Apple");
set.add("Banana");
set.add("Orange");
for (String fruit : set) {
System.out.println(fruit);
}
}
}
在上述代码中,我们创建了一个HashSet,并向其中添加了三个元素。然后,我们使用for-each循环遍历HashSet,并打印出每个元素的值。注意,HashSet中的元素没有固定的顺序,因此输出的顺序可能会不同。
上一篇:ArrayLists是可变的吗?