Recorrer HashTable

Iniciado por leogtz, 6 Octubre 2011, 04:52 AM

0 Miembros y 1 Visitante están viendo este tema.

leogtz

Hola a todos, necesito un poco de ayuda, ya que no me llevo bien con Java :s, he intentato un rato y nomás no puedo.

Lo que necesito es recorrer un HashTable que tiene la siguiente forma:

Hashtable<Integer, ArrayList> x = new Hashtable<Integer, ArrayList>();

Es decir, en cada clave del Hash, tengo un ArrayList de valores. Alguno sabe la forma de iterar sobre los valores dependiendo de la clave o recorrer toda la HashTable?
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

Valkyr

Puedes hacerlo de la siguiente forma:

Código (java) [Seleccionar]

Hashtable<Integer, ArrayList<String>> x = new Hashtable<Integer, ArrayList<String>>();
Set<Integer> claves = x.keySet();
for (Integer clave : claves) {
ArrayList<String> array = x.get(clave);
for (String string : array) {
//Operacion con el elemento del arrayList
}
}


Es decir, llamas al método keySet() de la clase Hashtable, que te devuelve el conjunto de claves que hay almacenado en él.

Con el primer bucle recorres el conjunto (es un bucle for each, búscalo en internet si nunca lo habías visto antes). Llamas al método get() que recupera el valor asociado a la clave que se le pasa como parámetro, y con el siguiente bucle recorres el ArrayList (también es un bucle for each).

Los bucles esos que he puesto la "nomenclatura" que tienen es: for (TipoDeDato variableQueAlmacenaValor : VariableQueQueremosRecorrer).

Espero que te sirva.

Saludos.