有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java删除ArrayList中最右边的元素

我想删除列表中最右边的一半,但这段代码有时是可以的,其他时间则不行

如果l包含A → B → C → D → E,那么在调用 l.removeRightmostHalf(),l变成{}

public void removeRightmostHalf() {
  if (size % 2 != 0)
  {
    current = (size / 2) + 1;
    while(current <= size)
    {
      for (int i = current + 1; i < size; i++)
         nodes[i-1] = nodes[i];
      size--;
      if (size == 0)
        current = -1;
      else if (current == size)
        current = 0;
    }
  }
  else 
  {
    current = (size / 2);
    while(current <= size)
    {
      for (int i = current + 1; i < size; i++)
        nodes[i-1] = nodes[i];
      size--;
      if (size == 0)
        current = -1;
      else if (current == size)
        current = 0;
    }
  }
}

共 (0) 个答案