Коллекция LinkedList

LinkedList в Java представляет собой реализацию интерфейса List, которая представляет собой двусвязный список элементов. Каждый элемент в LinkedList содержит ссылки на предыдущий и следующий элементы, что обеспечивает эффективное добавление и удаление элементов в середине списка.

  1. Двусвязный список: Каждый элемент списка содержит ссылки на предыдущий и следующий элементы. Это позволяет эффективно добавлять и удалять элементы в середине списка.

  2. Отсутствие случайного доступа: В отличие от массивов или ArrayList, доступ к элементам в LinkedList осуществляется последовательно от начала или конца списка. Для доступа к элементу по индексу может потребоваться линейное время O(n).

  3. Быстрые операции добавления и удаления: Добавление или удаление элементов в начале или конце списка выполняется за константное время O(1), что делает LinkedList эффективным выбором для стеков, очередей и деков.

  4. Итераторы: LinkedList предоставляет эффективные итераторы для перебора элементов списка. Они позволяют обходить элементы списка вперед и назад.

  5. Менее эффективное использование памяти: Каждый элемент в LinkedList требует дополнительного пространства для хранения ссылок на предыдущий и следующий элементы, поэтому LinkedList может потреблять больше памяти по сравнению с другими структурами данных.

  6. Несинхронизированность: LinkedList не является синхронизированным, поэтому он не подходит для использования в многопоточных приложениях без дополнительной синхронизации.

Пример использования LinkedList:

import java.util.LinkedList;

public class Main {
    public static void main(String[] args) {
        LinkedList<String> list = new LinkedList<>();

        // Добавление элементов в конец списка
        list.add("apple");
        list.add("banana");
        list.add("orange");

        // Добавление элемента в начало списка
        list.addFirst("grape");

        // Добавление элемента в середину списка
        list.add(2, "kiwi");

        // Удаление элемента из конца списка
        String lastElement = list.removeLast();
        System.out.println("Удаленный последний элемент: " + lastElement);

        // Получение первого элемента списка
        String firstElement = list.getFirst();
        System.out.println("Первый элемент: " + firstElement);

        // Итерация по элементам списка
        for (String fruit : list) {
            System.out.println(fruit);
        }
    }
}

Last updated