Интерфейс Map.Entry


Интерфейс Map.Entry в Java позволяет работать с записями Map.

Метод entrySet(), объявленный интерфейсом Map, возвращает Set, содержащий записи Map. Каждый из этих элементов является объектом Map.Entry.

В следующей таблице приведены методы, объявленные этим интерфейсом:

Методы
№ Методы и описание
1 boolean equals(Object obj)
Возвращает true, если obj - это Map.Entry, чей ключ и значение равны значению вызывающего объекта.
2 Object getKey( )
Возвращает ключ для этой записи в Map.
3 Object getValue( )
Возвращает значение для этой записи в Map.
4 int hashCode( )
Возвращает хэш-код для этой записи в Map.
5 Object setValue(Object v)
Устанавливает значение v для этой записи Map. Вызывается ClassCastException, если v не является правильным типом для Map. A Исключение NullPointerException выдается, если v является нулём, а Map не разрешает нулевые ключи. Исключение UnsupportedOperationException возникает, если карта не может быть изменена.


Пример
Ниже приведен пример, показывающий, как можно использовать Map.Entry:

import java.util.*;
public class HashMapDemo {

public static void main(String args[]) {
// Создаём хэш-карту
HashMap hm = new HashMap();

// Кладём элементы в Map
hm.put("Зоя", new Double(3434.34));
hm.put("Марк", new Double(123.22));
hm.put("Аня", new Double(1378.00));
hm.put("Маргарита", new Double(99.22));
hm.put("Михаил", new Double(-19.08));

// Получаем набор элементов
Set set = hm.entrySet();

// Получаем итератор
Iterator i = set.iterator();

// Отображение элементов
while(i.hasNext()) {
Map.Entry me = (Map.Entry)i.next();
System.out.print(me.getKey() + ": ");
System.out.println(me.getValue());
}
System.out.println();

// Вносим 1000 на счёт Зои
double balance = ((Double)hm.get("Зоя")).doubleValue();
hm.put("Зоя", new Double(balance + 1000));
System.out.println("Новый баланс Зои: " + hm.get("Зоя"));
}
}
Получим следующий результат:

Маргарита: 99.22
Аня: 1378.0
Зоя: 3434.34
Михаил: -19.08
Марк: 123.22

Новый баланс Зои: 4434.34