文
章
目
录
章
目
录
Java ArrayList.remove()方法会从该ArrayList中删除指定元素的第一个出现位置,如果存在的话。如果列表不包含该元素,则列表保持不变。
1.语法
remove()方法有两种形式的重载:
- boolean remove(Object o) – 通过值删除列表中指定元素的第一个出现位置。如果从列表中删除了任何元素,则返回true,否则返回false。
- Object remove(int index) – 从列表中删除指定位置的元素。将任何后续元素向左移动。返回从列表中删除的元素。如果参数索引无效,则抛出IndexOutOfBoundsException异常。
2.从ArrayList中删除元素的示例
2.1. 仅删除元素的第一个出现位置
使用remove()方法从ArrayList中删除对象的Java程序。在以下示例中,我们调用remove()方法两次。
- 如果列表中找到该元素,则从列表中删除该项的第一个出现位置。
- 如果列表中没有找到该元素,则列表保持不变。
以下列表中两次包含字符串“C”。remove()方法每次仅删除单个出现位置。
ArrayList<String> alphabets = new ArrayList<>(Arrays.asList("A", "B", "C", "C", "D"));
alphabets.remove("C"); //[A, B, C, D]
alphabets.remove("C"); //[A, B, D]
alphabets.remove("Z"); //[A, B, D] - List is unchanged
2.2. 删除元素的所有出现位置
我们不能直接使用remove()方法从列表中删除所有出现位置的任何元素。我们可以使用removeAll()方法来实现这一目的。
Java程序,从ArrayList中删除对象的所有出现位置。
ArrayList<String> alphabets = new ArrayList<>(Arrays.asList("A", "B", "C", "C", "D"));
alphabets.removeAll(Collections.singleton("C")); //[A, B, D]
3. 按索引删除元素
在使用索引删除元素时,我们必须非常小心列表的大小和索引参数。Java程序,使用remove()方法从ArrayList中根据其索引位置删除对象。
ArrayList<String> alphabets = new ArrayList<>(Arrays.asList("A", "B", "C", "D"));
alphabets.remove(2); //索引未超出范围 - 移除 'C'
alphabets.remove(10); //索引超出范围 - 抛IndexOutOfBoundsException
程序输出。
[A, B, C, D]
[A, B, D]
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 10, Size: 4
at java.util.ArrayList.rangeCheck(ArrayList.java:653)
at java.util.ArrayList.remove(ArrayList.java:492)
at com.howtodoinjava.example.ArrayListExample.main(ArrayListExample.java:18)
这就是Java中ArrayList remove()方法的全部内容。