Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 数组列表的最后一次输入失败_Java - Fatal编程技术网

Java 数组列表的最后一次输入失败

Java 数组列表的最后一次输入失败,java,Java,我做这个问题是因为我的业余爱好。其思想是,当您输入一个“空”时,代码将打印出列表中的最后一个输入。当我在Netbeans中测试它时,它工作正常,但当我尝试提交到服务器以便返回它并得到一个点时,我得到一个错误: ArrayIndexOutOfBoundsException:-1 有什么问题 ArrayList<String> lista = new ArrayList<>(); while (true) { String luettu = lukija.nextLi

我做这个问题是因为我的业余爱好。其思想是,当您输入一个“空”时,代码将打印出列表中的最后一个输入。当我在Netbeans中测试它时,它工作正常,但当我尝试提交到服务器以便返回它并得到一个点时,我得到一个错误:

ArrayIndexOutOfBoundsException:-1

有什么问题

ArrayList<String> lista = new ArrayList<>();
while (true) {
    String luettu = lukija.nextLine();
    if (luettu.equals("")) {
        break;
    }

    lista.add(luettu);
}

System.out.println(lista.get(lista.size() - 1));
ArrayList lista=new ArrayList();
while(true){
字符串luettu=lukija.nextLine();
if(luettu.equals(“”){
打破
}
加上(卢埃图);
}
System.out.println(lista.get(lista.size()-1));

好吧,如果列表为空,您仍然会尝试获取一个元素,请首先使用以下方法检查:

if(!lista.isEmpty()){
    System.out.println(lista.get(lista.size() - 1));
}
就你而言 lista.size()=0

因此 lista.size()-1=-1

这让你问 lista.get(-1)

这是不允许的


在获取lista.size()-1之前,请确保lista.size()>0,如果第一个输入是空行怎么办? 在这种情况下,lista.size()将返回0,从中减去1将尝试到达列表中的-1元素。

尝试以下代码片段:

ArrayList<String> lista = new ArrayList<>();
while (true) {
    String luettu = lukija.nextLine();
    if (luettu.equals("")) {
        break;
    }

    lista.add(luettu);
}

System.out.println(lista.get(lista.size()>0?lista.size() - 1:lista.size()));
ArrayList lista=new ArrayList();
while(true){
字符串luettu=lukija.nextLine();
if(luettu.equals(“”){
打破
}
加上(卢埃图);
}
System.out.println(lista.get(lista.size()>0?lista.size()-1:lista.size());

该行基本上会根据列表的大小进行检查和调整。当访问唯一的元素时,只有一个元素的列表不应该有-1。现在,如果在列表为空时运行“”,但问题仍然存在,则不会出现生成错误。@Fchicken这意味着您的扫描仪仍然为空,您的扫描仪无法访问该文件或该文件为空。我需要更多信息来帮助您解决我发现的问题。课程使用的预加载布局中存在拼写错误,因此公共类“name”与netBeans项目不匹配。因为最初的任务是“填写此代码以便发生x事件”。但谢谢,我学会了在列表为空时如何防止生成错误。java不是javascript