首页 > 解决方案 > 从列表中删除特定索引之后和之前的所有元素

问题描述

Java中有什么方法可以从列表中删除除给定索引之外的所有元素吗?假设我们有:

List<String> foo = new ArrayList<>();
foo.add("foo0");
foo.add("foo1");
foo.add("foo2");
foo.add("foo3");
foo.add("foo4");

而且我只想保留索引为 2 (foo2) 的元素,必须删除所有其他字符串。

我需要一个方法,如:给定字符串列表和给定索引,删除索引前后该列表的所有元素 我怎样才能实现这个目标?

干杯

标签: javaarraysarraylistjava-8indexof

解决方案


foo.subList(0, 2).clear(); // after execution of that line Your index 2 object  is on index 0.
foo.subList(1, foo.size()).clear();

现在您的列表foo只包含一个最初位于索引 2 的元素。

更新 :

public void RemoveAllExceptIndex(List<String> foo,int index) {
    foo.subList(0, index).clear();
    foo.subList(1, foo.size()).clear();
}

推荐阅读