Java
  • Java
  • Основы языка
    • Типы данных
    • Литералы
    • Переменные и константы
    • Операторы
    • Управляющие последовательности
  • Модификаторы
    • Модификаторы доступа
    • Модификаторы используемые не для доступа
  • Ввод с клавиатуры
  • Особенности строк
  • Коллекции
    • ArrayList и LinkedList
    • Set и Map
  • Дата и время
  • Исключения
    • Встроенные исключения
  • Интерфейсы
    • Абстрактный класс vs. интерфейс
  • Оператор instanceof
Powered by GitBook
On this page
Edit on GitHub
  1. Коллекции

ArrayList и LinkedList

PreviousКоллекцииNextSet и Map

Last updated 3 years ago

ArrayList реализован внутри в виде обычного массива. Поэтому при вставке элемента в середину, приходится сначала сдвигать на один все элементы после него, а уже затем в освободившееся место вставлять новый элемент. Зато в нем быстро реализованы взятие и изменение элемента – операции get, set, так как в них мы просто обращаемся к соответствующему элементу массива.

LinkedList реализован внутри по-другому. Он реализован в виде связного списка: набора отдельных элементов, каждый из которых хранит ссылку на следующий и предыдущий элементы. Чтобы вставить элемент в середину такого списка, достаточно поменять ссылки его будущих соседей. А вот чтобы получить элемент с номером 130, нужно пройтись последовательно по всем объектам от 0 до 130. Другими словами операции set и get тут реализованы очень медленно.