gpt4 book ai didi

Java - (LinkedList.get(var) == null) 不起作用

转载 作者:行者123 更新时间:2023-12-01 21:34:31 24 4
gpt4 key购买 nike

当我尝试从 LinkedList 获取索引时遇到错误,我在 0 位置插入 1 个值,因此当我询问下一个位置是否为 null 时,然后打印一些内容。

            int i;
int sum;
for(i=0; i<list.size();i++){
if(i == 0){
sum = i + 1;
if(list.get(sum) == null){

System.out.println("["+list.get(i) +"," + "Null" + "]" + " <-- Cabecera");
}
else{
System.out.println("["+list.get(i) +"," + sum + "]" + " <-- Cabecera");
}

}

else {
sum = i + 1;
if(list.get(sum) == null){
System.out.println("["+list.get(i) +"," + "Null" + "]");
}
else{
System.out.println("["+list.get(i) +"," + sum + "]");
}

}

但我一直有这个错误:线程“AWT-EventQueue-0”中出现异常 java.lang.IndexOutOfBoundsException:索引:1,大小:1

最佳答案

问题出在这部分:

sum = i + 1;
if(list.get(sum) == null){

i 通过 for 语句中的循环条件保证是有效索引,但i + 1 不是。当i等于list.size() - 1(最后一个元素的索引)时,你会得到一个IndexOutOfBoundsException,因为访问超出了列表的末尾。

顺便说一句,请记住 get 方法对于链表来说效率不高。您应该重构代码以使用 for-each 循环,或者将列表实现更改为具有高效随机访问功能的实现,例如 ArrayList。

关于Java - (LinkedList.get(var) == null) 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37064922/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com