Метод Java ArrayList.remove() удаляет первое вхождение указанного элемента из этого arraylist, если он присутствует. Если список не содержит элемента, список остается неизменным.
1. Синтаксис
Метод remove() перегружен и существует в двух формах:
- boolean remove(Object o) – удаляет первое вхождение указанного элемента по значению из списка. Возвращает true, если какой-либо элемент удален из списка, иначе false.
- Object remove(int index) – удаляет элемент в указанной позиции в этом списке. Смещает все последующие элементы влево. Возвращает удаленный элемент из списка. Выдает исключение IndexOutOfBoundsException, если аргумент index недействителен.
2. Примеры удаления элемента из ArrayList
2.1. Удаление только первого вхождения элемента
Программа Java для удаления объекта из ArrayList с помощью метода remove(). В следующем примере мы вызываем метод 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 для удаления объекта по его положению индекса из ArrayList с использованием метода remove().
ArrayList<String> alphabets = new ArrayList<>(Arrays.asList("A", "B", "C", "D"));alphabets.remove(2); //Index in range - removes 'C'alphabets.remove(10); //Index out of range - IndexOutOfBoundsException
Вывод программы.
[A, B, C, D][A, B, D]Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 10, Size: 4at java.util.ArrayList.rangeCheck(ArrayList.java:653)at java.util.ArrayList.remove(ArrayList.java:492)at com.howtodoinjava.example.ArrayListExample.main(ArrayListExample.java:18)
Вот и все, что касается метода ArrayList remove() в Java.