有人可以帮助修复这个运行时错误吗?

sc4hvdpw  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(462)

**结束。**此问题需要详细的调试信息。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。

四天前关门了。
改进这个问题
使用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();
    }
}
uujelgoq

uujelgoq1#

列表中没有添加任何元素,因此为空。您正在尝试获取-1处的元素,该元素将引发java.lang.indexoutofboundsexception。
在这种情况下,你应该检查是否越界。
我添加了一个方法来检查lastindex。如果list为emtpy,它将返回-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();
    }
}

相关问题