Java List remove()方法– ArrayList remove()
时间:2020-02-23 14:36:32 来源:igfitidea点击:
Java List remove()方法用于从列表中删除元素。
ArrayList是List接口使用最广泛的实现,因此此处的示例将使用ArrayList remove()方法。
Java列表remove()方法
有两种remove()方法可从列表中删除元素。
E remove(int index):此方法删除指定索引处的元素并返回它。
随后的元素向左移动一位。
如果指定的索引超出范围,则此方法抛出IndexOutOfBoundsException
。
如果List实现不支持此操作,则抛出UnsupportedOperationException。boolean remove(Object o):此方法删除指定对象的第一次出现。
如果列表不包含给定的元素,则它保持不变。
如果从列表中删除一个元素,则此方法返回" true",否则返回" false"。
如果对象为null,并且list不支持null元素,则抛出NullPointerException。
如果列表实现不支持此方法,则抛出UnsupportedOperationException。
列出remove()方法示例
让我们看一下remove()方法的一些示例。
1.删除给定索引的元素
List<String> list = new ArrayList<>(); list.add("A"); list.add("B"); list.add("C"); list.add("C"); list.add("B"); list.add("A"); System.out.println(list); String removedStr = list.remove(1); System.out.println(list); System.out.println(removedStr);
输出:
[A, B, C, C, B, A] [A, C, C, B, A] B
2. IndexOutOfBoundsException与remove(int index)方法
List<String> list = new ArrayList<>(); list.add("A"); String removedStr = list.remove(10);
异常输出:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index 10 out of bounds for length 1 at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248) at java.base/java.util.Objects.checkIndex(Objects.java:372) at java.base/java.util.ArrayList.remove(ArrayList.java:535) at com.theitroad.java.ArrayListRemove.main(ArrayListRemove.java:19)
3.不可修改列表remove()UnsupportedOperationException示例
List.of()方法创建一个不可修改的列表,因此使用remove()方法将引发UnsupportedOperationException。
jshell> List<String> list = List.of("a", "b"); list ==> [a, b] jshell> list.remove(1); | Exception java.lang.UnsupportedOperationException | at ImmutableCollections.uoe (ImmutableCollections.java:72) | at ImmutableCollections$AbstractImmutableList.remove (ImmutableCollections.java:108) | at (#64:1) jshell> list.remove("a"); | Exception java.lang.UnsupportedOperationException | at ImmutableCollections.uoe (ImmutableCollections.java:72) | at ImmutableCollections$AbstractImmutableCollection.remove (ImmutableCollections.java:79) | at (#65:1) jshell>
4.从列表中删除一个对象
List<String> list = new ArrayList<>(); list.add("A"); list.add("B"); list.add("C"); list.add("C"); list.add("B"); list.add("A"); System.out.println(list); boolean isRemoved = list.remove("C"); System.out.println(list); System.out.println(isRemoved); isRemoved = list.remove("X"); System.out.println(list); System.out.println(isRemoved);
输出:
[A, B, C, C, B, A] [A, B, C, B, A] true [A, B, C, B, A] false