Назад к вопросам
Junior
70
questionbank
Какие коллекции существуют в Java?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Collection - корневой интерфейс иерархии коллекций. Он представляет собой группу объектов, известных как элементы. Расширяется интерфейсами List, Set, Queue.
List - упорядоченная коллекция, допускающая дубликаты. Реализации:
ArrayList: Динамический массив, обеспечивает быстрый доступ по индексу, медленное удаление/вставку в середине.LinkedList: Двусвязный список, обеспечивает быструю вставку/удаление, медленный доступ по индексу.Vector: Синхронизированный аналогArrayList, устарел, использовать только при необходимости потокобезопасности.Stack: Наследуется отVector, реализует LIFO (Last-In, First-Out).
Set - неупорядоченная коллекция, не допускающая дубликаты. Реализации:
HashSet: Использует хэш-таблицу, быстрые операции добавления, удаления, поиска, порядок элементов не гарантируется.LinkedHashSet: Сохраняет порядок добавления элементов, использует хэш-таблицу и связанный список.TreeSet: Хранит элементы в отсортированном порядке, использует красно-черное дерево.
Queue - коллекция, предназначенная для хранения элементов перед обработкой (очередь). Обычно работает по принципу FIFO (First-In, First-Out). Реализации:
LinkedList: Может использоваться какQueue.ArrayDeque: Двусторонняя очередь, может работать как стека и очередь.PriorityQueue: Элементы извлекаются в порядке приоритета.
Map - интерфейс, не является частью иерархии Collection, но часто рассматривается вместе с ней. Хранит пары ключ-значение, ключи уникальны. Реализации:
HashMap: Использует хэш-таблицу, быстрые операции, порядок элементов не гарантируется.LinkedHashMap: Сохраняет порядок добавления или доступа к элементам.TreeMap: Хранит пары ключ-значение в отсортированном по ключам порядке, использует красно-черное дерево.HashTable: Синхронизированный аналогHashMap, устарел.
Примеры использования:
import java.util.*;
public class CollectionExamples {
public static void main(String[] args) {
// ArrayList
List<String> arrayList = new ArrayList<>();
arrayList.add("Apple");
arrayList.add("Banana");
System.out.println(arrayList.get(0));
// HashSet
Set<Integer> hashSet = new HashSet<>();
hashSet.add(1);
hashSet.add(2);
hashSet.add(1); // Дубликат не добавится
System.out.println(hashSet.size());
// HashMap
Map<String, String> hashMap = new HashMap<>();
hashMap.put("key1", "value1");
hashMap.put("key2", "value2");
System.out.println(hashMap.get("key1"));
}
}
Краткая таблица:
| Интерфейс | Основные реализации | Особенности |
|---|---|---|
List |
ArrayList, LinkedList |
Упорядоченность, допускает дубликаты |
Set |
HashSet, TreeSet |
Не допускает дубликаты |
Queue |
LinkedList, PriorityQueue |
Хранение для обработки, обычно FIFO |
Map |
HashMap, TreeMap |
Пары ключ-значение, уникальные ключи |