Collection Framework Flashcards
Что такое иммутабельные коллекции?
List.of(“a”, “b”, “c”);
Collections.unmodifiableList(mutableList);
И так-же для остальных
Чем отличаются LinkedList и ArrayList?
ArrayList - упорядоченный массив, с индексами. LinkedList - двусвязный список.
Какова сложность вставки в LinkedList и ArrayList?
ArrayList - упорядоченный массив, с индексами
LinkedList - двусвязный список
Вставка лучше в LinkedList. В другом ответе сложность у обоих линейная т.к.
В арейнадо сместить в памяти все эллементы после, а в линкед нужно найти нужный после которого вставить
поиск LinkedList медленнее, из-за распределенности в памяти
ArrayList располагается в одном месте в памяти, ускаряется доступ еще за счет кеша
Какова сложность поиска в LinkedList и ArrayList?
Поиск в LinkedList медленнее из-за распределенности в памяти. ArrayList располагается в одном месте в памяти.
Какова внутренняя структура ArrayList?
Динамический массив.
Какова внутренняя структура LinkedList?
Двусвязный список.
Какова сложность доступа по индексу в ArrayList и LinkedList?
ArrayList: O(1), LinkedList: O(n).
Какова сложность вставки в начало для ArrayList и LinkedList?
ArrayList: O(n), LinkedList: O(1).
Какова сложность вставки в конец для ArrayList и LinkedList?
ArrayList: O(1) (амортизированно), LinkedList: O(1).
Какова сложность удаления из начала для ArrayList и LinkedList?
ArrayList: O(n), LinkedList: O(1).
Какова сложность удаления из конца для ArrayList и LinkedList?
ArrayList: O(1), LinkedList: O(1).
Какова сложность удаления из середины для ArrayList и LinkedList?
ArrayList: O(n), LinkedList: O(1) (если узел известен).
Каково использование LinkedList?
Удобен для частой вставки в начало и конец.
Когда не использовать LinkedList?
Если нужен частый доступ по индексу или важна экономия памяти.
Как устроен ArrayList внутри?
Массив при достижении размера постоянно копируется.
В чем отличие между интерфейсами ‘Set’ и ‘List’?
Set запрещает дубликаты, List разрешает.
Каковы характеристики HashSet, LinkedHashSet и TreeSet?
HashSet: не гарантирует порядок, LinkedHashSet: по порядку добавления, TreeSet: отсортированный.
Что такое HashSet и как он работает?
Множество уникальных элементов. Доступ по ключу мгновенный.
В чем разница между HashSet и TreeSet?
TreeSet упорядочен, HashSet не сохраняет порядок.
Что такое HashMap и как она работает?
Структура ключ-значение. Внутри массив с индексами (бакетами).
Что происходит в ‘HashMap’ при коллизии ключей?
При коллизии происходит дополнительная проверка по equals.
Что такое процедура рехеширования?
Пересчитывается хешкод и перераспределяет по мапам.
Что такое Hashtable?
Ассоциативный массив, хранит пары. Устаревший, не пользуется.