Какие знаешь структуры данных в Java

«Какие знаешь структуры данных в Java» — вопрос из категории Алгоритмы и структуры данных, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Java основные структуры данных включают:

Примитивные массивы - фиксированного размера:

int[] arr = new int[10];

Коллекции из java.util:

  • List (ArrayList, LinkedList) - упорядоченные коллекции
  • Set (HashSet, TreeSet) - уникальные элементы
  • Queue (PriorityQueue, ArrayDeque) - FIFO/LIFO
  • Map (HashMap, TreeMap, LinkedHashMap) - пары ключ-значение

Пример ArrayList:

List<String> list = new ArrayList<>();
list.add("Android");
list.add("Java");

Особенности:

  • ArrayList - быстрый доступ по индексу
  • LinkedList - быстрая вставка/удаление
  • HashSet - O(1) для contains()
  • TreeSet - сортировка элементов
  • HashMap - хранение данных по хэшу ключа

Для многопоточности есть ConcurrentHashMap, CopyOnWriteArrayList и др.