Работа с динамическим массивом ArrayList требует умения находить и удалять элементы. Это частые операции при манипуляции данными.
Для поиска используются методы:
contains(Object o)— возвращаетtrue, если элемент есть в списке.indexOf(Object o)— возвращает индекс первого вхождения элемента или -1, если он не найден.
Для удаления используются методы:
remove(int index)— удаляет элемент по индексу.remove(Object o)— удаляет первое вхождение конкретного объекта.clear()— очищает весь список.
Будьте внимательны: при работе со списком целых чисел (List) методы remove могут вести себя неочевидно из-за перегрузки.
- Модуль 1: Первая программа и структура
- Модуль 2: Переменные и типы данных
- Объявление и инициализация переменных.
- Примитивы: целые числа (int, long, byte, short).
- Примитивы: дробные числа (double, float).
- Примитивы: логический тип (boolean).
- Примитивы: символьный тип (char).
- String — основы работы со строками.
- Приведение типов (Casting): расширение и сужение.
- Область видимости переменных (Scope).
- Модуль 3: Операторы
- Модуль 4: Управляющие конструкции
- Модуль 5: Массивы и Строки (Advanced)
- Создание и заполнение массива.
- Доступ к элементам по индексу.
- Свойство length и перебор массива.
- Цикл for-each для массивов.
- Многомерные массивы.
- Методы String: length, charAt, isEmpty.
- Манипуляции: substring, concat, replace.
- Сравнение строк: equals vs ==.
- Разделение строк (split) и trim.
- StringBuilder (изменяемые строки).
- Модуль 6: Методы
- Модуль 7: Классы и Объекты (ООП Часть 1)
- Модуль 8: Капсуляция и Модификаторы
- Модуль 9: Наследование и Полиморфизм (ООП Часть 2)
- Модуль 10: Обработка исключений
- Модуль 11: Коллекции и Дженерики
- Модуль 12: Функциональный стиль (Java 8+)
- Модуль 13: Полезные стандарты
1. Выбор метода удаления
В данном фрагменте кода необходимо удалить из списка ArrayList элемент по значению и элемент по индексу. Выберите из выпадающего списка правильные аргументы для методов remove, чтобы код выполнялся без ошибок и выводил ожидаемый результат. Обратите внимание на различие между удалением по индексу (примитивный int) и удалением по значению (объект Integer).
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> numbers = new ArrayList<>();
numbers.add(10);
numbers.add(20);
numbers.add(30);
numbers.add(40);
// Удалить элемент со значением 20
numbers.remove(input1S);
// Удалить элемент с индексом 0 (первый элемент)
numbers.remove(input2S);
System.out.println(numbers);
}
}2. Что останется?
Проанализируйте приведённый фрагмент кода на Java. Изначально создаётся ArrayList строк, содержащий элементы ["A", "B", "A", "C"]. Затем из списка вызывается метод remove("A"). Вам необходимо предсказать, как будет выглядеть содержимое списка после выполнения этой операции. Учтите, что метод remove(Object o) удаляет только первое вхождение указанного элемента.
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("A");
list.add("C");
list.remove("A");
System.out.println(list);
}
}3. Проверка наличия
Дополните фрагмент кода на Java, чтобы проверить, содержит ли список строк `languages` элемент "Java". Используйте условный оператор `if` и метод для проверки наличия элемента в коллекции `ArrayList`. После корректного заполнения пропуска программа должна вывести сообщение, если элемент найден.
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> languages = new ArrayList<>();
languages.add("Python");
languages.add("C++");
languages.add("Java");
if (input1S) {
System.out.println("Список содержит Java");
}
}
}4. Найти и удалить
Из предложенных строк соберите корректную java-программу, которая создаёт ArrayList
import java.util.ArrayList;public class Main { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); list.add("A"); list.add("B"); list.add("C"); int index = list.indexOf("B"); if (index != -1) { list.remove(index); System.out.println("Удален элемент по индексу: " + index); } }} list.remove("B"); System.out.println("Элемент найден: " + index); if (index == -1) { list.clear(); list.add("D");5. Поиск или Изменение
Перед вами список методов класса ArrayList в Java. Разнесите их по двум категориям в соответствии с их действием: методы, которые изменяют содержимое или структуру списка, и методы, которые только читают данные или выполняют поиск, не изменяя список. Обратите внимание, что некоторые методы могут возвращать значение, но при этом модифицировать список, а другие — только предоставляют информацию о его состоянии.
add(element)remove(element)contains(element)indexOf(element)clear()isEmpty()6. Неверный метод
В данном фрагменте кода, который работает с коллекцией ArrayList, допущена одна синтаксическая ошибка, из-за которой программа не скомпилируется. Код пытается получить размер списка, но использует для этого неверный метод. Вам нужно найти строку с ошибкой и исправить её, чтобы код корректно вывел количество элементов в списке. Обратите внимание на различия между методами для массивов и для коллекций.
import java.util.ArrayList; public class Main { public static void main(String[] args) { ArrayList<String> languages = new ArrayList<>(); languages.add("Java"); languages.add("Python"); System.out.println("Количество элементов: " + languages.length()); }}