删除ArrayList元素后,是否在for循环中减少计数器变量?如果是这样,这是因为列表向左移动了吗?我提供了我的代码,似乎有效:
public void removeLine(String ln)
{
//loop through lineList
for (int i = 0; i < lineList.size(); i++)
{
//check if match is found
if (lineList.get(i).equals(ln))
{
//remove element at i
lineList.remove(i);
//decrement i
i--;
} //end if
} //end for
} //remove line
答案 0 :(得分:0)
是的,你必须减少它,否则它将跳过下一个条目。
或者,如果项目被删除,我更喜欢不增加。像这样:
public void removeLine(String ln)
{
//loop through lineList
for (int i = 0; i < lineList.size(); /**/)
{
//check if match is found
if (lineList.get(i).equals(ln))
{
//remove element at i
lineList.remove(i);
continue;
}
++i;
}
}
答案 1 :(得分:0)
使用像这样的迭代器。
public void removeLine(List<String> lineList, String ln) {
for (Iterator<String> i = lineList.iterator(); i.hasNext(); )
if (i.next().equals(ln))
i.remove();
}