Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.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 使用arraylist时,else部件不工作_Java_Arrays_Arraylist - Fatal编程技术网

Java 使用arraylist时,else部件不工作

Java 使用arraylist时,else部件不工作,java,arrays,arraylist,Java,Arrays,Arraylist,我想知道为什么我的else状态不起作用如果部件正在工作,但其他部件不工作。我想比较数组列表中的字符串,并打印其状态,无论是否在列表中找到 for(int i=0;i<laptop.size();i++) { if(serialno.equals(laptop.get(i).getSerialno())) { laptop.remove(i); System.out.println("Deleted"); } els

我想知道为什么我的else状态不起作用<代码>如果部件正在工作,但其他部件不工作。我想比较数组列表中的字符串,并打印其状态,无论是否在列表中找到

for(int i=0;i<laptop.size();i++)
{
     if(serialno.equals(laptop.get(i).getSerialno()))
     {
         laptop.remove(i);
         System.out.println("Deleted");
     }
     else
     {
         System.out.println("Laptop not found in the list");
     }
}

for(int i=0;i如果删除,您希望从循环中断,并且仅在所有循环完成后打印状态

boolean isDeleted = false;
for(int i=0;i<laptop.size();i++)
{
     if(serialno.equals(laptop.get(i).getSerialno()))
     {
         laptop.remove(i);
         isDeleted = true;
         break;
     }
}

if(isDeleted)
{
     System.out.println("Deleted");
}
else
{
     System.out.println("Laptop not found in the list");
 }
boolean isDeleted=false;

对于(int i=0;我能更具体地说明else条件是如何失败的吗?它从不打印“列表中找不到笔记本电脑”吗?它是否经常打印?还是有其他问题?在当前的实现中,您正在从正在迭代的集合中删除项目,因此每次删除一个项目时,laptop.size都会更改,并且您将跳过列表中的项目您在此处删除后不会从列表中断开,并且您正在对所删除的列表调用remove你正在迭代(因此,当你从内部循环中删除笔记本电脑时,laptop.size()会发生变化)@Mike这是我愚蠢的想法,我说了
break
,但实际上没有这么做。谢谢提醒。