删除ArrayList元素后,是否在for循环中减少计数器?

时间:2016-02-20 04:43:00

标签: java arraylist

删除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

2 个答案:

答案 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();
}