Junior
45
questionbank

Какие коллекции существуют в Java?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

В Java Collections Framework предоставляет множество коллекций для хранения и управления данными. Основные интерфейсы и их реализации:

  • Collection: корневой интерфейс.
    • List: упорядоченная коллекция, допускающая дубликаты.
      • ArrayList: основан на массиве, быстрый доступ по индексу, медленная вставка/удаление в середину.
      • LinkedList: основан на двусвязном списке, быстрая вставка/удаление, медленный доступ по индексу.
      • Vector: потокобезопасный аналог ArrayList, устаревший.
      • Stack: основан на Vector, принцип LIFO.
    • Set: коллекция уникальных элементов, без определенного порядка (кроме SortedSet).
      • HashSet: основан на хеш-таблице, быстрый доступ и вставка/удаление.
      • LinkedHashSet: сохраняет порядок вставки.
      • TreeSet: хранит элементы в отсортированном порядке.
    • Queue: коллекция элементов, часто используемая для хранения элементов перед обработкой в порядке FIFO.
      • PriorityQueue: элементы извлекаются в порядке их приоритета.
      • ArrayDeque: двусторонняя очередь.
    • Deque: двусторонняя очередь, можно добавлять и удалять элементы с обоих концов.
  • Map: хранит пары ключ-значение, ключи уникальны.
    • HashMap: основан на хеш-таблице, быстрый доступ по ключу.
    • LinkedHashMap: сохраняет порядок вставки или доступа.
    • TreeMap: хранит пары в отсортированном порядке по ключам.
    • Hashtable: потокобезопасный аналог HashMap, устаревший.

Потокобезопасные коллекции:

  • Collections.synchronized*: обертки над существующими коллекциями.
  • Concurrent*: пакет java.util.concurrent, коллекции с улучшенной производительностью в конкурентной среде.
    • ConcurrentHashMap
    • CopyOnWriteArrayList
    • ConcurrentLinkedQueue

И другие менее распространенные коллекции.