Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Java: List, remove, overload, Java, Collection

Какие перегрузки метода remove() существуют в List?

Вопрос проверяет знание методов интерфейса List для удаления элементов и их перегрузок.

Короткий ответ

В интерфейсе List существует две перегрузки метода remove(): remove(int index) удаляет элемент по указанной позиции и возвращает удаленный элемент, а remove(Object o) удаляет первое вхождение указанного объекта и возвращает boolean. Важно помнить, что при использовании remove() с примитивным типом int вызывается версия с индексом, а не с объектом.

Длинный ответ

Перегрузки метода remove() в List

В интерфейсе List (Java) метод remove() имеет две перегрузки, которые отличаются типом принимаемого параметра и возвращаемым значением. Это важно учитывать, чтобы избежать ошибок при вызове.

remove(int index)

Удаляет элемент, находящийся на указанной позиции (индексе). После удаления все последующие элементы сдвигаются влево. Метод возвращает удаленный элемент.

List<String> list = new ArrayList<>(List.of("A", "B", "C"));
String removed = list.remove(1); // удаляет "B"
System.out.println(removed); // B
System.out.println(list); // [A, C]

remove(Object o)

Удаляет первое вхождение указанного объекта из списка, если он присутствует. Если элемент найден и удален, возвращает true, иначе false. Для сравнения используется метод equals().

List<String> list = new ArrayList<>(List.of("A", "B", "C", "B"));
boolean removed = list.remove("B"); // удаляет первое "B"
System.out.println(removed); // true
System.out.println(list); // [A, C, B]

Важный нюанс с автоупаковкой

Если список содержит целые числа (Integer), вызов remove(1) удалит элемент с индексом 1, а не объект со значением 1. Чтобы удалить объект, нужно явно передать Integer: list.remove(Integer.valueOf(1)).

List<Integer> numbers = new ArrayList<>(List.of(1, 2, 3));
numbers.remove(1); // удаляет элемент с индексом 1 (значение 2)
numbers.remove(Integer.valueOf(1)); // удаляет объект со значением 1

Вывод

Понимание перегрузок remove() необходимо для корректной работы со списками, особенно при использовании числовых типов. Всегда проверяйте, какой именно метод вызывается, чтобы избежать неожиданного поведения.

Уровень

  • Рейтинг:

    4

  • Сложность:

    3

Навыки

  • Java

    Java

Ключевые слова

#List

#remove

#overload

#Java

#Collection

Подпишись на Java Developer в телеграм