在Java的集合框架中,ArrayList
是一种基于数组实现的可变大小的动态数组。与普通数组不同,ArrayList
提供了一系列的方法来动态地添加、删除和访问元素。以下是 ArrayList
中进行删除操作的一些常用方法的详解:
1. remove(int index)
这个方法用于移除列表中指定位置(index)的元素。该操作返回被移除的元素并调整列表,以便后续元素向前移动,填补被移除元素的空位。例如:
ArrayList<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");// 删除索引为1的元素(即"B")
String elementRemoved = list.remove(1); // elementRemoved将会是"B"
2. remove(Object o)
这个方法用于移除列表中首次出现的指定元素(如果存在)。它会返回一个布尔值指示列表是否因调用而改变(即该元素是否被移除)。例如:
ArrayList<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");// 删除首次出现的"B"
boolean isRemoved = list.remove("B"); // isRemoved将会是true
3. removeAll(Collection<?> c)
此方法用来批量移除一个集合中所有存在于 ArrayList
中的元素。如果列表因调用而改变,则返回 true
。例如:
ArrayList<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
list.add("B");
ArrayList<String> itemsToRemove = new ArrayList<>();
itemsToRemove.add("B");
itemsToRemove.add("C");// 批量移除"B"和"C"
boolean isChanged = list.removeAll(itemsToRemove); // isChanged将会是true
4. removeIf(Predicate<? super E> filter)
Java 8
引入了这个方法,用于根据给定的条件(Predicate
)移除元素。如果有元素被移除,就返回 true
。例如:
ArrayList<String> list = new ArrayList<>();
list.add("A");
list.add("BB");
list.add("CCC");// 根据条件移除所有长度大于1的字符串
boolean isRemoved = list.removeIf(s -> s.length() > 1); // isRemoved将会是true
5. clear()
这个方法用于移除 ArrayList
中的所有元素,之后列表将会变为空。这个方法不返回任何值。例如:
ArrayList<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");// 清空整个ArrayList
list.clear(); // list现在将会是空的