Java 如何从ArrayList中删除元素
List接口是Java集合框架的成员之一。它扩展了Collection并存储一系列元素。ArrayList和LinkedList是List接口最常用的实现。List允许用户精确控制元素在List中的插入位置。这些元素可以通过它们的索引访问,并且可进行搜索。
List提供了两种remove()方法来通过提供元素的索引或元素本身来从列表中删除元素。
使用索引进行删除
E remove(int index)
注意
- 从列表中删除指定位置的元素。
-
将后续元素向左移动(索引减一)。
-
返回从列表中删除的元素。
参数
- index - 要删除的元素的索引。
返回值
先前位于指定位置的元素
抛出异常
- UnsupportedOperationException - 如果此列表不支持删除操作。
-
IndexOutOfBoundsException - 如果索引超出范围(index < 0 || index >= size())。
使用对象进行删除
boolean remove(Object o)
注意事项
-
如果列表中存在指定的元素,则从列表中删除第一个出现的元素。
-
如果列表中不包含该元素,则列表不变。
-
从具有最低索引i的元素中删除(如果存在这样的元素),使(onull ? get(i)null : o.equals(get(i)))。
-
如果列表包含指定的元素(或等效地,如果此调用导致列表更改),则返回true。
参数
- o - 要从列表中删除的元素(如果存在)。
返回值
如果列表包含指定的元素,则返回true。
抛出异常
- ClassCastException - 如果指定元素的类型与此列表不兼容(可选)。
-
NullPointerException - 如果指定元素为null且此列表不允许null元素(可选)。
-
UnsupportedOperationException - 如果此列表不支持删除操作。
示例1
以下示例显示了使用remove()方法按索引删除元素的用法-
package com.tutorialspoint;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class CollectionsDemo {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>(Arrays.asList(1,2,3,4,5,6,7,8,9,0));
System.out.println("List: " + list);
// remove item at index 5,
list.remove(5);
// updated list is not having 6
System.out.println("Updated List: " + list);
}
}
输出
这将产生以下结果:
List: [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
Updated List: [1, 2, 3, 4, 5, 7, 8, 9, 0]
示例2
以下是一个示例,展示了使用remove()方法通过传入元素来删除元素的用法 –
package com.tutorialspoint;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class CollectionsDemo {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>(Arrays.asList(1,2,3,4,5,6,7,8,9,0));
System.out.println("List: " + list);
// remove the item 7,
list.remove(Integer.valueOf(7));
// updated list is not having 7
System.out.println("Updated List: " + list);
}
}
输出
这将产生以下结果−
List: [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
Updated List: [1, 2, 3, 4, 5, 6, 8, 9, 0]