English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Java

Java Управление потоком

Java Массив

Java Ориентированное на объекты (I)

Java Ориентированное на объекты (II)

Java Ориентированное на объекты (III)

Обработка исключений Java

Java Список (List)

Java Queue (очередь)

Java Сборник Map

Java Сборник Set

Java Вход/вывод (I/O)

Java Reader/Writer

Другие темы Java

Интерфейс Map Java

В этом руководстве мы изучим интерфейс Java Map и его методы.

Интерфейс Map в фреймворке Java Collections предоставляет функции структуры данных Map.

Он реализует интерфейс Collection.

Рабочий процесс map

В Java элементы Map хранятся в парах ключ/значение. Ключ - это уникальное значение, связанное с каждым значением.

Сборники Map не могут содержать повторяющиеся ключи. И каждый ключ связан с одним значением.

Мы можем использовать связанные с ними ключи для доступа и изменения значений.

На рисунке выше у нас есть значения: Соединенные Штаты, Бразилия и Испания. У нас есть соответствующие ключи: us, br и es.

Теперь мы можем использовать соответствующие ключи для доступа к этим значениям.

Примечание:Интерфейс Map поддерживает три различных集合:

  • Сборник ключей

  • Сборник значений

  • Сборники ключ/значение (сборники Map)

Таким образом, мы можем отдельно обращаться к ключам, значениям и связям.

Классы, реализующие Map

Поскольку Map является интерфейсом, из него нельзя создать объект.

Для использования функций интерфейса Map мы можем использовать следующие классы:

Эти классы определены и реализуют интерфейс Map в рамке集合ов.

Интерфейсы, наследующие Map

Интерфейс Map также наследуется следующими подинтерфейсами:

Как использовать map?

В Java我们必须 импортировать пакет java.util.Map, чтобы использовать Map. После импорта пакета, map можно создать следующим образом.

// Создание Map с помощью класса HashMap
Map<Key, Value> numbers = new HashMap<>();

В上面的 коде мы создали Map под названием numbers. Мы использовали класс HashMap для реализации интерфейса Map.

Здесь,

  • Key - уникальный идентификатор, используемый для связи каждого элемента (значения) в map

  • Value - элемент, связанный с ключом в map

Методы map

Интерфейс Map включает все методы интерфейса Collection. Это связано с тем, что Collection является супέρ-интерфейсом Map.

Кроме методов, доступных в интерфейсе Collection, интерфейс Map также включает следующие методы:

  • put(K,V) - Вставляет ассоциацию ключа K и значения V в map. Если ключ уже существует, то новое значение заменяет старое.

  • putAll() - Вставляет все элементы из указанного набора Map в этот набор Map.

  • putIfAbsent(K,V) - Вставляет ассоциацию V, если ключ K еще не связан с значением.

  • get(K) - Возвращает значение, связанное с указанным ключом K. Если ключ не найден,则在озвращает null.

  • getOrDefault(K,defaultValue) - Возвращает значение, связанное с указанным ключом K. Если ключ не найден,则在озвращает defaultValue.

  • containsKey(K) - Проверяет, существует ли указанный ключ K в map.

  • containsValue(V) - Проверяет, существует ли указанное значение V в map.

  • replace(K,V) - Заменяет значение ключа K новым значением V.

  • replace(K,oldValue,newValue) - Заменяет значение ключа K новым значением newValue только в том случае, если текущее значение ключа K равно oldValue.

  • remove(K) - Удаляет запись из набора Map, представляющую ключ K.

  • remove(K,V) - Удаляет из набора Map запись, связанную с ключом K и значением V.

  • keySet() - Возвращает набор всех ключей, существующих в наборе Map.

  • values() - Возвращает набор всех значений, содержащихся в наборе Map.

  • entrySet() - возвращает набор всех существующих в карте ключ/значение пар.

Реализация интерфейса Map

1. Реализация класса HashMap

import java.util.Map;
import java.util.HashMap;
class Main {
    public static void main(String[] args) {
        // создание карты с использованием класса HashMap
        Map<String, Integer> numbers = new HashMap<>();
        // вставка элементов в множество карты
        numbers.put("One", 1);
        numbers.put("Two", 2);
        System.out.println("Карта: " + numbers);
        // ключи карты
        System.out.println("Keys: " + numbers.keySet());
        // значения карты
        System.out.println("Values: " + numbers.values());
        // элементы карты
        System.out.println("Энtries: " + numbers.entrySet());
        //Удаление элемента из коллекции map
        int value = numbers.remove("Two");
        System.out.println("Удаленное значение: " + value);
    }
}

Результат вывода

Карта: {One=1, Two=2}
Keys: [One, Two]
Values: [1, 2]
Энtries: [One=1, Two=2]
Удаленное значение: 2

Для получения дополнительной информации о HashMap, пожалуйста, посетитеHashMap Java.

2. Реализация класса TreeMap

import java.util.Map;
import java.util.TreeMap;
class Main {
    public static void main(String[] args) {
        // создание карты с использованием TreeMap
        Map<String, Integer> values = new TreeMap<>();
        // вставка элементов в карту
        values.put("Second", 2);
        values.put("First", 1);
        System.out.println("Использование TreeMap для создания карты: " + values);
        // замена значений
        values.replace("First", 11);
        values.replace("Second", 22);
        System.out.println("Новый Map: " + values);
        //Удаление элемента из коллекции map
        int removedValue = values.remove("First");
        System.out.println("Удаленное значение: " + removedValue);
    }
}

Результат вывода

Создание map с использованием TreeMap: {First=1, Second=2}
Новый Map: {First=11, Second=22}
Удаленное значение: 11

Для получения дополнительной информации о TreeMap, пожалуйста, посетитеJava TreeMap.