ho creato una hash table <String, ArrayList<String>> h

Ho aggiunto n elementi. Fino a qua tutto ok in quanto se stampo h.size() ritorna il numero giusto.
Il problema è quando provo a scorrerla stampando, per ogni riga, la chiave e tutti i valori di ArrayList.
posto il mio codice:
codice:
Enumeration keys=h.keys();
         while(keys.hasMoreElements()){
                  String chiave=(String) keys.nextElement();
                  ArrayList<String> val=h.get(chiave);
                  System.out.println("k: " + "|" + chiave.toString()+ "|");
                  System.out.print("ArrayList(" + val.size() + "): ");
                  for(i=0;i<val.size();i++){
                            System.out.print("_" + val.get(i) + "_" + " ");
                  }System.out.println("\n");
         }
mi stampa solo l'ultima "riga" aggiunta nella tavola hash. sicuramente avrò fatto qualche errore con la enumeration. non ho idea dove sia però...qualche idea?

seconda domanda. con la enumeration dovrei stampare gli elementi della hash table dal primo all'ultimo o in ordine casuale?

grazie anticipatemente