Java ArrayList и LinkedList: Уроки для профессионалов

Рассмотрим динамические массивы данных в 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. Выбор зависит от конкретных задач и требований к производительности. Понимание особенностей каждой структуры данных позволяет создавать оптимальный код.

Что будем искать? Например,программа