Java, как удалить элемент Integer в ArrayList
Предположим, что у меня такой ArrayList:
ArrayList<Integer> list = new ArrayList<Integer>();
После операции добавления:
list.add(2);
list.add(3);
list.add(5);
list.add(7);
Я хочу удалить number 2
, если я делаю
list.remove(2);
то number 5
будет удален, как я могу удалить number 2
? И предположим, что я не знаю индекса number 2
.
Ответы
Ответ 1
попробуйте это
list.removeAll(Arrays.asList(2));
он удалит все элементы со значением = 2
вы также можете использовать этот
list.remove(Integer.valueOf(2));
но он удалит только первое появление 2
list.remove(2)
не работает, потому что он соответствует List.remove(int i)
, который удаляет элемент с указанным индексом
Ответ 2
Существуют две версии метода remove()
:
С помощью ArrayList<Integer>
удаление целочисленного значения, такого как 2
, берется как индекс, так как remove(int)
является точным соответствием для этого. Он не будет вставлять 2
в Integer
и расширять его.
Обходной путь заключается в том, чтобы явно получить объект Integer
, и в этом случае расширение будет предпочтительнее, чем при распаковке:
list.remove(Integer.valueOf(2));
Ответ 3
Я думаю, что это то, что вы хотите: ArrayList <Integer> с методом get/remove
list.remove(new Integer(2));
Ответ 4
попробуйте следующее:
list.remove(list.indexOf(2));
Ответ 5
Попробуйте,
list.remove(0);
-
remove (int index)
Удаляет элемент в указанной позиции в этом списке (необязательно
операция). Сдвигает любые последующие элементы влево (вычитает
один из их индексов). Возвращает элемент, который был удален из
список.
-
remove (Object o)
Удаляет первое вхождение указанного элемента из этого
список, если он присутствует. Если список не содержит элемент, он
не меняется. Более формально удаляет элемент с наименьшим
индекс я такой, что (o==null ? get(i)==null : o.equals(get(i))
) (если
такой элемент существует). Возвращает true, если этот список содержит
(или, что то же самое, если этот список изменился в результате
вызова).
Ответ 6
list.remove(0);
0 представляют элемент с индексом 0
и вы написали list.remove(2);
, что означает удаление элемента в индексе 2 (элемент на третьем месте i.e 5, так как ArrayList
Начать с индекса 0,1,2....)
Ответ 7
Нет явного метода для поиска определенного элемента списка, а затем его удаления. Вы должны сначала найти его с помощью метода indexOf
:
int index = list.indexOf(element); // for your example element would be 2
list.remove(index);
Имейте в виду, что indexOf
возвращает индекс первого вхождения объекта, который вы ему даете, поэтому вам придется соответствующим образом настроить те случаи, когда вы хотите удалить элемент, который находится в списке несколько раз.
Ответ 8
Просто, если вы используете такой метод, он удалит элемент с индексом 2
ВАШЕГО АРХИЛИСТА: 2,3,5,7
list.remove(2);
ВЫХОД: 2,5,7
И если вы используете такой метод, он удалит элемент со значением 2
ВАШЕГО АРХИЛИСТА: 2,3,5,7
list.remove(Integer.valueOf(2));
ВЫХОД: 3,5,7
Надеюсь, что это поможет...