Метод entrySet
Метод entrySet возвращает представление всех
пар ключ-значение, хранящихся в коллекции HashMap.
Возвращаемое значение имеет тип Set<Map.Entry<K, V>>,
где каждая пара представлена объектом Map.Entry.
Метод не принимает параметров. Полученное множество
связано с исходной коллекцией: изменения в нем отражаются
на HashMap и наоборот. Это удобный способ перебрать
все пары ключ-значение одновременно.
Синтаксис
hashMap.entrySet()
Пример
Давайте создадим коллекцию HashMap и получим
множество ее пар с помощью метода entrySet:
import java.util.HashMap;
import java.util.Set;
import java.util.Map;
public class Main
{
public static void main(String[] args)
{
HashMap<String, Integer> map = new HashMap<>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
Set<Map.Entry<String, Integer>> res = map.entrySet();
System.out.println(res);
}
}
Результат выполнения кода:
[a=1, b=2, c=3]
Пример
Давайте переберем все пары ключ-значение с помощью
цикла for-each и выведем ключи и значения
по отдельности:
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("a", 1);
map.put("b", 2);
map.put("c", 3);
for (Map.Entry<String, Integer> entry : map.entrySet())
{
System.out.println(entry.getKey() + " -> " + entry.getValue());
}
}
}
Результат выполнения кода:
"a -> 1"
"b -> 2"
"c -> 3"
Пример
Давайте изменим значение через объект Map.Entry
с помощью метода 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("a", 1);
map.put("b", 2);
map.put("c", 3);
for (Map.Entry<String, Integer> entry : map.entrySet())
{
if (entry.getKey().equals("b"))
{
entry.setValue(99);
}
}
System.out.println(map);
}
}
Результат выполнения кода:
{a=1, b=99, c=3}
Пример
Давайте посчитаем сумму всех значений коллекции,
перебрав ее пары через 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("a", 1);
map.put("b", 2);
map.put("c", 3);
int sum = 0;
for (Map.Entry<String, Integer> entry : map.entrySet())
{
sum += entry.getValue();
}
System.out.println(sum);
}
}
Результат выполнения кода:
6