从列表中删除特定索引后的所有元素

2022-08-31 10:27:59

在List/ArrayList中,有没有方便的方法,通过它可以在特定索引之后删除List的所有元素。而不是手动循环通过它进行删除。

为了更具解释性,如果我有一个包含10个元素的列表,我想提到索引3,然后索引3之后的所有元素都被删除,我的列表现在只包含4个元素(计数从0开始)


答案 1
list.subList(4, list.size()).clear();

子列表操作反映在原始列表中,因此这会清除从索引 4(包括)到独占(即索引 3 之后的所有内容)的所有内容。范围删除在文档中专门用作示例:list.size()

此方法消除了对显式范围操作(数组中通常存在的那种)的需要。任何需要列表的操作都可以通过传递子列表视图而不是整个列表来用作范围操作。例如,以下成语从列表中删除一系列元素:

     list.subList(from, to).clear();

答案 2

使用 sublist() 和 clear(),

public class Count
{
    public static void main(String[] args)
    {
        ArrayList<String> arrayList = new ArrayList<String>();
        arrayList.add("1");
        arrayList.add("2");
        arrayList.add("3");
        arrayList.add("4");
        arrayList.add("5");
        arrayList.subList(2, arrayList.size()).clear();
        System.out.println(arrayList.size());
    }
}

推荐