Java-从arrayList获取值并使用索引时发生逻辑错误
我的问题是这个逻辑错误,除了这一部分,课堂上的其他所有东西都能正常工作。 在此之前,用户输入一个与basket ArrayList中的值相对应的值。 我想找到存储该值的索引,并将其返回给main方法以删除它。目前,它返回的是用户输入,而不是目标索引。它编译得很干净。谢谢你抽出时间Java-从arrayList获取值并使用索引时发生逻辑错误,java,arraylist,indexing,runtime-error,Java,Arraylist,Indexing,Runtime Error,我的问题是这个逻辑错误,除了这一部分,课堂上的其他所有东西都能正常工作。 在此之前,用户输入一个与basket ArrayList中的值相对应的值。 我想找到存储该值的索引,并将其返回给main方法以删除它。目前,它返回的是用户输入,而不是目标索引。它编译得很干净。谢谢你抽出时间 //loop for each index within basket for (Integer indexBasket : basket){ //if value at
//loop for each index within basket
for (Integer indexBasket : basket){
//if value at index = what we want to remove
if (basket.get(indexBasket).equals(remove))
{
//then assign the value of posistion in the array to targetIndex
targetIndex = indexBasket;
}
}
}
//return targetIndex
return targetIndex;
}
试试这个
//loop for each index within basket
for (int indexBasket=0; indexBasket<basket.size(); indexBasket++){
//if value at index = what we want to remove
if (basket.get(indexBasket).equals(remove))
{
//then assign the value of posistion in the array to targetIndex
targetIndex = indexBasket;
}
}
}
//return targetIndex
return targetIndex;
}
//篮子中每个索引的循环
对于(int indexBasket=0;indexBasket在targetIndex=indexBasket
之后应该有一个中断;
。如果您已经找到了所需的内容,则无需进一步遍历。或者只需在循环中返回indexBasket;
。@klarki可能想返回最后一个匹配的,列表可以包含重复项。但是在这种情况下“如果是这样的话,从末尾开始遍历是有意义的。@klarki好的,观点很好,同意了。这就解决了问题。非常感谢您的快速响应:)