我真的需要自己实施吗?
private void shrinkListTo(ArrayList<Result> list, int newSize) {
for (int i = list.size() - 1; i >= newSize; --i)
list.remove(i);
}
Run Code Online (Sandbox Code Playgroud)
mP.*_*mP. 116
创建一个子列表,其中包含您要删除的元素范围,然后调用clear返回的列表.
list.subList(23, 45).clear()
Run Code Online (Sandbox Code Playgroud)
这是一个完全经过单元测试的代码示例!
// limit yourHappyList to ten items
int k = yourHappyList.size();
if ( k > 10 )
yourHappyList.subList(10, k).clear();
// sic k, not k-1
Run Code Online (Sandbox Code Playgroud)
或者你可以使用subList方法:
public static <T> List<T> shrinkTo(List<T> list, int newSize) {
return list.subList(0, newSize - 1);
}
Run Code Online (Sandbox Code Playgroud)
protected void removeRange(int fromIndex,int toIndex)
从此列表中删除索引介于fromIndex(包含)和toIndex(独占)之间的所有元素.将任何后续元素向左移动(降低其索引).此调用通过(toIndex - fromIndex)元素缩短列表.(如果toIndex == fromIndex,此操作无效.)
然后使用ArrayList#trimToSize()方法:
将此ArrayList实例的容量调整为列表的当前大小.应用程序可以使用此操作来最小化ArrayList实例的存储.
| 归档时间: |
|
| 查看次数: |
39123 次 |
| 最近记录: |