我真的需要自己实现吗?

private void shrinkListTo(ArrayList<Result> list, int newSize) {
  for (int i = list.size() - 1; i >= newSize; --i)
  list.remove(i);
}

最佳答案

使用要删除的元素范围创建一个sublist,然后在返回的列表中调用 clear

list.subList(23, 45).clear()

该方法在ListArrayList的文档中都作为习惯用法提到。

这是一个经过完全单元测试的代码示例!
// limit yourHappyList to ten items
int k = yourHappyList.size();
if ( k > 10 )
    yourHappyList.subList(10, k).clear();
    // sic k, not k-1

10-08 11:49