java - 任何人都可以帮助解决此运行时错误?
问题描述
使用 arraylist 并尝试获取最后一个元素,我遇到了一些运行时错误。
import java.util.ArrayList;
public class MyProgram{
private ArrayList<String> list = new ArrayList<String>();
public void printLastThing(){
int lastIndex = list.size() - 1;
String thing = list.get(lastIndex);
System.out.println(thing);
}
public static void main(String[] args){
MyProgram example = new MyProgram();
example.printLastThing();
}
}
解决方案
列表中没有添加任何元素,因此它是空的。您正在尝试获取 -1 处的元素,这将引发 java.lang.IndexOutOfBoundsException。
在这种情况下,您应该检查是否超出范围。
我添加了一种检查 lastindex 的方法。如果列表为空,它将返回-1,并且一旦获得-1,您就可以显示该列表(如果为空)。
import java.util.ArrayList;
public class MyProgram{
private ArrayList<String> list = new ArrayList<String>();
public MyProgram() {
list.add("a");
list.add("z");
}
public void printLastThing(){
int lastIndex = getLastIndex();
if(lastIndex >= 0)
System.out.println(list.get(lastIndex));
else
System.out.println("List is empty");
}
private int getLastIndex() {
if(list.size()==0) {
return -1;
}
return list.size() - 1;
}
public static void main(String[] args){
MyProgram example = new MyProgram();
example.printLastThing();
}
}
推荐阅读
- excel - 更改数据透视表源时出现无效的过程错误?
- django - 在 Django url 路径中使用变量名而不是整数
- vba - 列表中有新段落时如何获取列表级别
- android - 使用带有 replace() 的片段转换获得视觉“堆栈”行为
- android - Visual Studio for Mac 无法部署到兼容的 android 模拟器
- r - 将 MCA 坐标保存为新变量
- ethereum - geth 永远不会停止在主网上同步
- javascript - 为什么我无法预览我上传的内容?
- scala - 如何惯用地将元素添加到不可变集合并获得成功?
- python - Python、Kivy、Labels 每次我点击运行时都会切换位置,这是一个错误吗?