PDA

View Full Version : [JAVA] Scorrere hashmap come array


Abdujaparov
15-05-2008, 07:35
Salve a tutti ho una hashmap:

HashMap map = new HashMap ();

Vorrei scorrere l'oggetto map come un array e per ogni elemento prendere chiave e valore, come posso fare?
Grazie a tutti, ciao ciao.

TuX2K6
15-05-2008, 07:49
Ti conviene scorrere il keySet (.keySet() sull'hashmap che ti restituisce un Set delle chiavi) e per ogni elemento fare una get :)

k0nt3
15-05-2008, 09:38
altrimenti potresti usare il metodo HashMap.entrySet()

mone.java
16-05-2008, 09:45
Salve a tutti ho una hashmap:

HashMap map = new HashMap ();

Vorrei scorrere l'oggetto map come un array e per ogni elemento prendere chiave e valore, come posso fare?
Grazie a tutti, ciao ciao.


Set list = map.keySet();
Iterator iter = list.iterator();

while(iter.hasNext()) {
Object key = iter.next();
Object value = map.get(key);
}


Dovrebbe funzionare così

TuX2K6
16-05-2008, 10:44
altrimenti potresti usare il metodo HashMap.entrySet()

Così non avrebbe le chiavi che invece ha specificato di volere :)

...
Conviene iterare usando il for se usa almeno la 1.5, più compatto e leggibile a mio avviso

HashMap<Object, Object> map = new HashMap <Object, Object>();
Set<Object> keySet = map.keySet();
for(Object key:keySet){
Object value = map.get(key);
}

Ovviamente bisognerebbe usare i tipi corretti per HashMap e Set, io mi sono tenuto sul generico

k0nt3
16-05-2008, 13:22
non ho provato ma a leggere la documentazione dovrebbe restituire un insieme di coppie chiave-valore

banryu79
16-05-2008, 13:50
non ho provato ma a leggere la documentazione dovrebbe restituire un insieme di coppie chiave-valore
Infatti, un entrySet è una lista di oggetti Map.Entry, da cui si possono recuperare le rispettive key e value con i metodi getKey() e getValue()

mone.java
16-05-2008, 13:55
HashMap<Object, Object> map = new HashMap <Object, Object>();
Set<Object> keySet = map.keySet();
for(Object key:keySet){
Object value = map.get(key);
}



mi piace di più il tuo modo di iterare un HashMap, mi sa che da oggi in poi lo userò anche io.