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));

Ответ 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

Надеюсь, что это поможет...