Em Java, a iteração sobre Map pode ser feita de várias maneiras. Lembre-se de que não podemos iterar diretamente no mapa usando iteradores , porque a interface do mapa não faz parte da coleção. Todos os mapas em implementos Java Mapa interface. Existem os seguintes tipos de mapas em Java:
- HashMap
- ÁrvoreMapa
- LinkedHashMap
Um mapa não é uma coleção, mas ainda assim, considere-o na estrutura de coleções. Conseqüentemente, um Mapa é uma interface que não estende a interface Coleções.
Iterador
Um iterador é uma interface usada para iterar em uma coleção. Ele toma o lugar da Enumeração no Java Collections Framework. A diferença entre iterador e enumeração é:
- O Iterador pode percorrer elementos legados e não legados, enquanto a Enumeração pode percorrer apenas elementos legados.
- O iterador é resistente a falhas, enquanto a enumeração não é rápida a falhas.
Visualizações da coleção
O método de visualizações de coleção permite que um mapa seja visualizado como uma Coleção das seguintes maneiras:
A interface do Mapa também possui uma pequena interface aninhada chamada Entrada do mapa . A visualização da coleção fornece o único meio de iterar em um mapa.
lista de estados
Usando a interface do Iterador
Exemplo de iteração sobre HashMap
public static void main(String args[]) { HashMap hm = new HashMap(); //implements map interface hm.put(110,'Ravi'); hm.put(120,'Prateek'); hm.put(130, 'Davesh'); hm.put(140, 'Kamal'); hm.put(150, 'Pawan'); Iterator it = hm.keySet().iterator(); //keyset is a method while(it.hasNext()) { int key=(int)it.next(); System.out.println('Roll no.: '+key+' name: '+hm.get(key)); } } }
Saída:
entrada java
Roll no.: 130 name: Davesh Roll no.: 150 name: Pawan Roll no.: 120 name: Prateek Roll no.: 140 name: Kamal Roll no.: 110 name: Ravi
Usando os métodos keyset() e value()
conjunto de chaves(): A conjunto de chaves() método de HashMap class é usada para iteração sobre as chaves contidas no mapa. Ele retorna a visualização Set das chaves.
Sintaxe
Set keyset()
valores(): A valores() método de HashMap class é usada para iteração sobre os valores contidos no mapa. Ele retorna uma visão de coleção dos valores.
Sintaxe
Collection values()
Exemplo
linux menta canela vs companheiro
import java.util.Map; import java.util.HashMap; class IterationExample2 { public static void main(String[] arg) { Map map = new HashMap(); map.put('Gujarat', 'Gandhi Nagar'); map.put('Uttar Pradesh', 'Lucknow'); map.put('Sikkim', 'Ganagtok'); for (String State : map.keySet()) //using keyset() method for iteration over keySet System.out.println('State: ' + State); for (String Capital : map.values()) //using values() for iteration over keys System.out.println('Capiatl: ' + Capital); } }
Saída:
State: Gujarat State: Sikkim State: Uttar Pradesh Capital: Gandhi Nagar Capital: Ganagtok Capital: Lucknow
Usando Map.entrymethod
Map.Entry é uma interface. Retorna uma visão de coleção do mapa, cujos elementos são desta classe.
Um método map.entrySet() retorna uma visualização Set do mapeamento contido no mapa. As mudanças no mapa também são refletidas no Conjunto e vice-versa. Ele também suporta a remoção de elementos, o que remove o mapeamento correspondente do mapa.
Sintaxe
como ler um arquivo json
Set<map.entry> entrySet() </map.entry>
Exemplo
import java.util.*; class IterationExample3 { public static void main(String[] arg) { Map map = new HashMap(); map.put('Cookies', 90.87f); map.put('Dry Fruits', 434.23f); map.put('Oats', 220.00f); map.put('Chocolate', 70.89f); for (Map.Entry entry : map.entrySet()) //using map.entrySet() for iteration { //returns keys and values respectively System.out.println('Item: ' + entry.getKey() + ', Price: ' + entry.getValue()); } } }
Saída:
Item: Oats, Price: 220.0 Item: Dry Fruits, Price: 434.23 Item: Cookies, Price: 90.87 Item: Chocolate, Price: 70.89
Iteração sobre chaves e obtenção de valores
Exemplo
No exemplo a seguir, primeiro iteramos as chaves e depois obtemos os valores.
import java.util.*; class IterationExample4 { public static void main(String[] arg) { Map map = new HashMap(); map.put('Sumit', 'Singh'); map.put('Devesh', 'Mishra'); map.put('Rahul', 'Tiwari'); for (String name: map.keySet()) //iteration over keys { //returns the value to which specified key is mapped String lastname=map.get(firstname); System.out.println('Key: ' + name + ', Value: ' + lastname); } } }
Saída:
Key: Rahul, Value: Tiwari Key: Devesh, Value: Mishra Key: Sumit, Value: Singh
Usando o método forEach()
O para cada() método de ListaArray é usado para executar uma ação para cada elemento do Iterable até que todos os elementos tenham sido processados.
Sintaxe
public void forEach(Consumer action)
O método toma ação (a ação a ser executada para cada elemento) como parâmetro. Não retorna nada. Isso joga Null Pointer Exception se a ação especificada for nula.
se por rudyard kipling resumo
Exemplo
No exemplo a seguir, estamos usando a expressão lambda dentro do método forEach() para imprimir cada elemento do mapa.
import java.util.Map; import java.util.HashMap; class IterationExample5 { public static void main(String[] arg) { Map map = new HashMap(); map.put('TCS', '0 billion'); map.put('Wipro', '.5 billion'); //iteration over map using forEach() method map.forEach((k,v) -> System.out.println('Company: '+ k + ', Net worth: ' + v)); } }
Saída:
Company: Wipro, Net worth: .5 billion Company: TCS, Net worth: 0 billion