Коллекции

#Собеседования #Разработка #Коллекции

Один из самых популярных вопросов, который не задает только ленивый, даже в какой-то мере ставший уже моветоном на урове "Где вы видите себя через 5 лет?", в среде программистов это "Расскажите отличия между List, Set, Map и их реализациями (ArrayList, LinkedList, HashSet, TreeSet, HashMap, TreeMap)?"

List List - упорядоченная коллекция, допускает дублирующие элементы. ArrayList: динамический массив, быстрый доступ по индексу, медленные вставка/удаление в середине. LinkedList: двусвязный список, быстрые вставка/удаление, медленный доступ по индексу.

Set Set - коллекция уникальных элементов, порядок не гарантируется. HashSet: использует хеш-таблицу, быстрые операции добавления, удаления и проверки наличия элемента, порядок не гарантируется. TreeSet: реализует сбалансированное дерево, элементы в отсортированном порядке, медленнее HashSet.

Map Map - коллекция пар "ключ-значение", ключи уникальны. HashMap: использует хеш-таблицу, быстрые операции добавления, удаления и поиска по ключу, порядок не гарантируется. TreeMap: реализует сбалансированное дерево, ключи в отсортированном порядке, медленнее HashMap.

А если еще проще (как мы на этом канале любим), то: List для порядка, Set для уникальности, Map для пар ключ-значение.