Назад к вопросам
Junior
70
questionbank

Что такое интерфейс Map в Java?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Map — это интерфейс в Java, представляющий собой коллекцию пар "ключ-значение". Каждый ключ уникален, и ему соответствует одно значение. В отличие от других коллекций вроде List или Set, Map не наследуется от интерфейса Collection.

Основные операции:

  • put(K key, V value): добавляет пару "ключ-значение" или обновляет значение для существующего ключа.
  • get(Object key): возвращает значение, связанное с указанным ключом, или null, если ключ не найден.
  • remove(Object key): удаляет пару по ключу.
  • containsKey(Object key): проверяет наличие ключа.
  • containsValue(Object value): проверяет наличие значения.
  • size(): возвращает количество пар.
  • isEmpty(): проверяет, пуста ли Map.
  • clear(): удаляет все пары.
  • keySet(): возвращает Set ключей.
  • values(): возвращает Collection значений.
  • entrySet(): возвращает Set пар Map.Entry<K, V>.

Примеры реализаций:

  • HashMap: не гарантирует порядок элементов, быстрая для основных операций.
  • LinkedHashMap: сохраняет порядок добавления элементов или порядок доступа.
  • TreeMap: хранит элементы в отсортированном порядке по ключу. Порядок определяется естественным порядком ключей или компаратором.
  • ConcurrentHashMap: потокобезопасная реализация для многопоточных сред.

Пример использования:

// Создание HashMap
Map<String, Integer> scores = new HashMap<>();

// Добавление элементов
scores.put("Alice", 95);
scores.put("Bob", 88);
scores.put("Charlie", 92);

// Получение значения по ключу
int aliceScore = scores.get("Alice"); // 95

// Проверка наличия ключа
boolean containsBob = scores.containsKey("Bob"); // true

// Итерация по EntrySet
for (Map.Entry<String, Integer> entry : scores.entrySet()) {
    System.out.println(entry.getKey() + ": " + entry.getValue());
}