Автор оригинала: Pankaj Kumar.
Метод Java List remove() используется для удаления элементов из списка. ArrayList является наиболее широко используемой реализацией интерфейса списка , поэтому в приведенных здесь примерах будут использоваться методы ArrayList remove ().
Методы удаления списка Java()
Существует два метода удаления() для удаления элементов из списка.
- E удалить(индекс int) : Этот метод удаляет элемент с указанным индексом и возвращает его. Последующие элементы сдвигаются влево на одно место. Этот метод вызывает исключение
IndexOutOfBoundsException
, если указанный индекс находится вне диапазона. Если реализации списка не поддерживают эту операцию, будет выдано исключениеUnsupportedOperationException
. - логическое удаление(объект o) : Этот метод удаляет первое вхождение указанного объекта. Если список не содержит данного элемента, он остается неизменным. Этот метод возвращает
true
, если элемент удален из списка, в противном случаеfalse
. Если объект равен нулю, а список не поддерживает нулевые элементы, Создается исключение NullPointerException . Исключение UnsupportedOperationException возникает, если реализация списка не поддерживает этот метод.
Примеры методов удаления списка()
Давайте рассмотрим некоторые примеры методов remove ().
1. Удалите элемент с заданным индексом
Listlist = 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)
Listlist = 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.journaldev.java.ArrayListRemove.main(ArrayListRemove.java:19)
3. Неизменяемый список удалить() Пример исключения UnsupportedOperationException
Метод List.of() создает неизменяемый список, поэтому использование метода remove() вызовет исключение UnsupportedOperationException.
jshell> Listlist = 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. Удаление объекта из списка
Listlist = 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