Рассмотрим динамические массивы данных в Java: ArrayList и LinkedList. В отличие от статических массивов фиксированного размера, динамические массивы позволяют изменять свой размер во время выполнения программы.
ArrayList: Создание и использование
Для работы с ArrayList импортируем библиотеку:
import java.util.ArrayList;
Создадим ArrayList целых чисел:
ArrayList<Integer> samDynamic = new ArrayList<>();
Обратите внимание: ранее при создании ArrayList требовалось указывать начальный размер, сейчас это необязательно. Указывается только тип данных элементов. Добавим элементы, используя метод add():
samDynamic.add(56);
samDynamic.add(6);
samDynamic.add(5);
samDynamic.add(8);
samDynamic.add(10);
samDynamic.add(12);
Вывод элементов на экран:
for (Integer x : samDynamic) {
System.out.print(x + " ");
}
Метод clear() очищает массив:
samDynamic.clear();
Метод size() возвращает количество элементов:
System.out.println(samDynamic.size());
Удаление элементов методом remove() по индексу:
samDynamic.remove(1); // Удаление элемента с индексом 1
ArrayList предоставляет множество методов для работы с элементами: добавление, удаление, изменение, поиск.
LinkedList: Создание и использование
Для работы с LinkedList импортируем библиотеку:
import java.util.LinkedList;
Создадим LinkedList строк:
LinkedList<String> names = new LinkedList<>();
Добавим элементы:
names.add("Tom");
names.add("George");
names.add("John");
Методы add(), clear(), size() работают аналогично ArrayList. Рассмотрим метод set():
names.set(0, "Alex"); // Замена элемента с индексом 0 на "Alex"
Вывод элементов:
for (String name : names) {
System.out.print(name + " ");
}
ArrayList vs LinkedList: Сравнение
ArrayList и LinkedList похожи функционально, но различаются по реализации. LinkedList эффективнее при частых операциях добавления/удаления элементов в середине списка. ArrayList быстрее при доступе к элементам по индексу и поиске. В небольших программах разница в производительности может быть незначительной.
ArrayList и LinkedList – эффективные инструменты для работы с динамическими массивами в Java. Выбор зависит от конкретных задач и требований к производительности. Понимание особенностей каждой структуры данных позволяет создавать оптимальный код.