Класс Map.Entry
Класс Map.Entry представляет собой одну пару
«ключ-значение» внутри коллекции Map.
Каждый элемент HashMap хранится именно в виде
объекта Map.Entry. Через этот интерфейс можно
получить ключ методом getKey, получить значение
методом getValue и изменить значение методом
setValue. Объекты Map.Entry обычно
получают при переборе коллекции через entrySet.
В первый параметр метода setValue мы передаем
новое значение для текущего ключа. Метод getKey
не принимает параметров и возвращает ключ, а метод
getValue не принимает параметров и возвращает
значение.
Синтаксис
Map.Entry<K, V> entry = map.entrySet().iterator().next();
entry.getKey();
entry.getValue();
entry.setValue(newValue);
Пример
Давайте получим пару ключ-значение из коллекции и выведем ключ и значение:
import java.util.HashMap;
import java.util.Map;
public class Main
{
public static void main(String[] args)
{
HashMap<String, Integer> map = new HashMap<>();
map.put("abcde", 1);
Map.Entry<String, Integer> entry = map.entrySet().iterator().next();
System.out.println(entry.getKey());
System.out.println(entry.getValue());
}
}
Результат выполнения кода:
"abcde"
1
Пример
Давайте изменим значение пары через метод
setValue и проверим результат в коллекции:
import java.util.HashMap;
import java.util.Map;
public class Main
{
public static void main(String[] args)
{
HashMap<String, Integer> map = new HashMap<>();
map.put("abcde", 1);
Map.Entry<String, Integer> entry = map.entrySet().iterator().next();
entry.setValue(2);
System.out.println(entry.getValue());
System.out.println(map.get("abcde"));
}
}
Результат выполнения кода:
2
2
Пример
Давайте переберем все пары ключ-значение коллекции
через entrySet и выведем их на экран:
import java.util.HashMap;
import java.util.Map;
public class Main
{
public static void main(String[] args)
{
HashMap<String, Integer> map = new HashMap<>();
map.put("abcde", 1);
map.put("12345", 2);
for (Map.Entry<String, Integer> entry : map.entrySet())
{
System.out.println(entry.getKey() + " -> " + entry.getValue());
}
}
}
Результат выполнения кода:
"abcde -> 1"
"12345 -> 2"