Foro de elhacker.net

Programación => Java => Mensaje iniciado por: leogtz en 6 Octubre 2011, 04:52 am



Título: Recorrer HashTable
Publicado por: leogtz en 6 Octubre 2011, 04:52 am
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?


Título: Re: Recorrer HashTable
Publicado por: Valkyr en 6 Octubre 2011, 15:52 pm
Puedes hacerlo de la siguiente forma:

Código
  1. Hashtable<Integer, ArrayList<String>> x = new Hashtable<Integer, ArrayList<String>>();
  2. Set<Integer> claves = x.keySet();
  3. for (Integer clave : claves) {
  4. ArrayList<String> array = x.get(clave);
  5. for (String string : array) {
  6. //Operacion con el elemento del arrayList
  7. }
  8. }

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.