文
章
目
录
章
目
录
本Java教程将教您如何使用不同的方法从List中删除所有出现的特定元素。通过使用内置方法从列表中删除单个特定元素很容易,但是,删除所有该元素是一项繁琐的任务。
1.使用List.removeAll()
这是从列表中删除元素的一种直接和简单的方法之一。removeAll()方法将删除List中包含在指定集合中的所有元素。我们可以将包含要从此列表中删除的元素的集合作为参数传递。
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(2);
int itemToRemove = 2;
list.removeAll(Collections.singleton(itemToRemove));
2.使用Streams
流API提供了一种方便的方式来过滤流中的所有特定元素。我们需要迭代流元素,并在过滤需要删除的元素后将条目收集到列表中。
System.out.println(list.stream().filter(e -> !Objects.equals(e, item)).collect(Collectors.toList()));
在这种方法中,我们将使用removeIf()方法来从流中剔除所有的指定元素。它需要一个Predicate,当满足条件并返回true时删除元素。
list.stream().removeIf(i -> Objects.equals(i, item));
3.在循环中使用remove()
remove()方法会删除列表中元素的第一个出现。我们可以反复调用它,直到它返回false,以所有指定删除元素。请注意,当元素的出现次数很多时,此方法效率低下。
for (int i = 0; i < myList.size(); i++) {
if (Objects.equals(item, myList.get(i))) {
list.remove(i);
}
}
4.结论
在本Java教程中,我们学习了如何使用从循环到Java 8方法的不同技术从List中删除所有出现的指定元素。其中最有效方法是使用removeAll()方法或Stream API,而不是逐个迭代元素。