2012-04-16 17 views
6

Estaba tratando de aprender y entender el funcionamiento de un HashMap. Así que he creado este mapa hash para almacenar ciertos valores que se presentan en el uso de un iterador me da como salidasextrayendo valores de HashMap

1=2 
2=3 
3=4 

y así sucesivamente. Esta salida la obtengo usando la función Iterator.next(). Ahora, ¿cuál es mi duda real de que, dado que el tipo de este valor retornó en un Objeto iterador, si necesito extraer solo los valores del lado derecho de las equidades anteriores, ¿hay alguna función para eso? Algo así como una subcadena. ¿Hay alguna manera en que podría obtener resultados como

2 
3 
4 

Cualquier ayuda será apreciada. gracias por adelantado.

+2

En la mayoría de los casos, no es necesario interactuar directamente con el iterador. Vea la respuesta de Peter Lawrey para ver cómo hacer una para cada ciclo. – unholysampler

Respuesta

11

me gustaría utilizar algo así como

Map<Integer, Integer> map = new HashMap<>(); 

for(int value: map.values()) 
    System.out.println(value); 
+0

funcionó. muchas gracias. –

2

El mapa tiene un método llamado values ​​() para obtener una colección de todos los valores. (el lado derecho)

Del mismo modo, hay un método llamado keySet() para obtener un conjunto de todas las claves. (el lado izquierdo)

0

Necesita el método Map#values() que devuelve Collection.

A continuación, puede obtener Iterator de esta colección de la manera normal.

2
import java.util.HashMap; 

public class Test 
{ 
    public static void main(String args[]) 
    { 
     HashMap < Integer , Integer > map = new HashMap < Integer , Integer >(); 

     map.put(1 , 2); 
     map.put(2 , 3); 
     map.put(3 , 4); 

     for (Integer key : map.keySet()) 
     { 
      System.out.println(map.get(key)); 
     } 
    } 
}