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

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

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

四天前关门了。
改进这个问题
使用arraylist并尝试获取最后一个元素时,出现了一些运行时错误。

  1. import java.util.ArrayList;
  2. public class MyProgram{
  3. private ArrayList<String> list = new ArrayList<String>();
  4. public void printLastThing(){
  5. int lastIndex = list.size() - 1;
  6. String thing = list.get(lastIndex);
  7. System.out.println(thing);
  8. }
  9. public static void main(String[] args){
  10. MyProgram example = new MyProgram();
  11. example.printLastThing();
  12. }
  13. }
uujelgoq

uujelgoq1#

列表中没有添加任何元素,因此为空。您正在尝试获取-1处的元素,该元素将引发java.lang.indexoutofboundsexception。
在这种情况下,你应该检查是否越界。
我添加了一个方法来检查lastindex。如果list为emtpy,它将返回-1,如果为空,则可以在得到-1后显示该列表。

  1. import java.util.ArrayList;
  2. public class MyProgram{
  3. private ArrayList<String> list = new ArrayList<String>();
  4. public MyProgram() {
  5. list.add("a");
  6. list.add("z");
  7. }
  8. public void printLastThing(){
  9. int lastIndex = getLastIndex();
  10. if(lastIndex >= 0)
  11. System.out.println(list.get(lastIndex));
  12. else
  13. System.out.println("List is empty");
  14. }
  15. private int getLastIndex() {
  16. if(list.size()==0) {
  17. return -1;
  18. }
  19. return list.size() - 1;
  20. }
  21. public static void main(String[] args){
  22. MyProgram example = new MyProgram();
  23. example.printLastThing();
  24. }
  25. }
展开查看全部

相关问题