Java根据下标剔除掉List中的多个元素
时间: 2023-12-14 14:38:05 浏览: 81
你可以使用 `List.subList(int fromIndex, int toIndex)` 方法获取需要剔除的元素子列表,然后再使用 `List.removeAll(Collection<?> c)` 方法将子列表中的元素从原列表中移除。
下面是一个示例代码:
```
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
list.add("E");
List<String> toBeRemoved = list.subList(1, 4); // 获取下标为 1 到 3 的子列表
list.removeAll(toBeRemoved); // 从原列表中移除子列表中的元素
System.out.println(list); // 输出 [A, E]
```
在这个例子中,我们从 `list` 中剔除了下标为 1 到 3 的元素(即 "B", "C", "D"),最终输出的列表只剩下了 "A" 和 "E"。
相关问题
Java根据多个下标剔除掉List中的多个元素
如果你想根据多个下标从List中剔除多个元素,可以使用Java 8中引入的removeIf()方法结合一个Predicate对象来实现。Predicate对象用于定义删除哪些元素的条件,具体实现如下:
```java
List<String> list = new ArrayList<>(Arrays.asList("a", "b", "c", "d", "e", "f"));
List<Integer> indicesToRemove = new ArrayList<>(Arrays.asList(1, 3, 5));
list.removeIf(element -> indicesToRemove.contains(list.indexOf(element)));
```
这里首先创建了一个包含6个元素的List,然后创建了另一个List,其中包含要删除的元素的下标。最后调用removeIf()方法,该方法会遍历List中的每个元素,并将满足Predicate对象条件的元素删除。
在本例中,Predicate对象使用了Lambda表达式来实现,其中indexOf()方法用于获取元素在List中的下标,contains()方法用于判断元素下标是否在要删除的下标列表中。这样,最终只有下标为1、3和5的元素被删除了。
阅读全文