Java - a interface Map.Entry
A interface Map.Entry permite que você trabalhe com uma entrada de mapa.
o entrySet( )método declarado pela interface do mapa retorna um conjunto contendo as entradas do mapa. Cada um desses elementos do conjunto é um objeto Map.Entry.
A tabela a seguir resume os métodos declarados por esta interface -
Sr. Não. | Método e Descrição |
---|---|
1 | boolean equals(Object obj) Retorna verdadeiro se obj for um Map.Entry cuja chave e valor sejam iguais aos do objeto de chamada. |
2 | Object getKey( ) Retorna a chave para esta entrada do mapa. |
3 | Object getValue( ) Retorna o valor para esta entrada do mapa. |
4 | int hashCode( ) Retorna o código hash para esta entrada do mapa. |
5 | Object setValue(Object v) Define o valor desta entrada do mapa para v. Uma ClassCastException é lançada sevnão é o tipo correto para o mapa. Uma NullPointerException é lançada sevé nulo e o mapa não permite chaves nulas. Uma UnsupportedOperationException é lançada se o mapa não puder ser alterado. |
Exemplo
A seguir está um exemplo que mostra como Map.Entry pode ser usado -
import java.util.*;
public class HashMapDemo {
public static void main(String args[]) {
// Create a hash map
HashMap hm = new HashMap();
// Put elements to the map
hm.put("Zara", new Double(3434.34));
hm.put("Mahnaz", new Double(123.22));
hm.put("Ayan", new Double(1378.00));
hm.put("Daisy", new Double(99.22));
hm.put("Qadir", new Double(-19.08));
// Get a set of the entries
Set set = hm.entrySet();
// Get an iterator
Iterator i = set.iterator();
// Display elements
while(i.hasNext()) {
Map.Entry me = (Map.Entry)i.next();
System.out.print(me.getKey() + ": ");
System.out.println(me.getValue());
}
System.out.println();
// Deposit 1000 into Zara's account
double balance = ((Double)hm.get("Zara")).doubleValue();
hm.put("Zara", new Double(balance + 1000));
System.out.println("Zara's new balance: " + hm.get("Zara"));
}
}
Isso produzirá o seguinte resultado -
Resultado
Daisy: 99.22
Ayan: 1378.0
Zara: 3434.34
Qadir: -19.08
Mahnaz: 123.22
Zara's new balance: 4434.34