文
章
目
录
章
目
录
Java ArrayList类是集合框架的一部分,允许使用实例方法添加和移除元素。在内部,它维护一个可调整大小的数组,根据添加或移除元素的操作而动态增长或缩小。
本教程讨论了使用remove()、removeAll()和removeIf()方法从ArrayList中移除单个或多个元素的不同方法。
- remove()方法通过指定的值或索引来移除单个元素。
- removeAll()方法从当前列表中移除指定集合的所有元素。
- removeIf()方法移除匹配Predicate的所有元素。
//快速指南
ArrayList<String> arraylist2 = new ArrayList<>();
//1 - 从指定索引位置移除一个元素。
arraylist.remove(indexPosition);
//2 - 根据元素的值移除第一个出现的元素。
arraylist.remove(element);
//3 - 从ArrayList中移除指定集合的所有元素。
arraylist.removeAll(Arrays.asList(ele1, ele2, ele3));
//4 - 根据条件移除所有匹配的元素。
arraylist.removeIf(e -> e.contains("temp"));
1.remove()、removeAll()和removeIf()方法的语法
remove()方法是重载的。
E remove(int index)
boolean remove(E element))
- remove(int index) – 移除指定索引处的元素并返回被移除的项。
- remove(E element) – 根据值移除指定元素,并如果成功移除元素则返回true,否则返回false。
removeAll()接受一个集合并从当前列表中移除指定集合的所有元素。
boolean removeAll(Collection<?> c)
removeIf()接受一个Predicate以匹配要移除的元素。
boolean removeIf(Predicate<? super E> filter)
2.按指定索引移除元素
remove(index)方法移除列表中指定位置处的元素E。它会移除该位置上的元素,并将所有后续元素向左移动(它们的索引将减一)。
请注意,列表索引从0开始。
ArrayList<String> namesList = new ArrayList<String>(Arrays.asList( "alex", "brian", "charles") );
System.out.println(namesList); //list size is 3
//移除索引1处元素
namesList.remove(1);
System.out.println(namesList); //list size is 2
程序输出:
[alex, brian, charles]
[alex, charles]
3.按值移除元素
remove(Object)方法移除列表中指定元素E的第一个出现。由于此方法移除对象,列表大小会减少一个。
ArrayList<String> namesList = new ArrayList<>(Arrays.asList( "alex", "brian", "charles", "alex") );
System.out.println(namesList);
namesList.remove("alex");
System.out.println(namesList);
程序输出:
[alex, brian, charles, alex]
[brian, charles, alex]
要移除指定元素的所有出现,我们可以使用removeAll()方法。由于此方法接受一个集合参数,因此我们首先需要将要移除的元素包装在一个List中。
namesList.removeAll(List.of("alex"));
程序输出:
[brian, charles]
4.删除满足匹配条件的元素
我们可以使用Java 8流的另一种非常简单的语法,使用removeIf()方法根据元素值移除所有元素。
以下Java程序使用List.removeIf()从ArrayList中根据元素值移除多个元素。
ArrayList<String> namesList = new ArrayList<String>(Arrays.asList( "alex", "brian", "charles", "alex") );
System.out.println(namesList);
namesList.removeIf( name -> name.equals("alex"));
System.out.println(namesList);
程序输出:
[alex, brian, charles, alex]
[brian, charles]
5.结论
ArrayList类(或集合框架中的任何其他列表类型)提供了使用各种技术移除元素的便捷方法。每种技术都适用于不同的用例。
了解何时使用哪种移除方法是在应用程序中进行数据处理时有效地使用ArrayList类的关键。