Avatar billede sbhansen Nybegynder
14. december 2001 - 14:51 Der er 3 kommentarer og
1 løsning

Iterator til HashMap - kan man det

Hvis jeg putter 20 objekter af typen (Opgave) i en HashMap, som har keys af typen (Key, i virkeligheden blot en indpakning af autonummernøgle fra db), hvordan traverserer jeg så gennem dem - altså en løkke, der returnerer Object o = .Next indtil den har vist alle opgaverne. - ikke med toString - men returnerer et Objekt pr. cyklus.

Jeg kan ikke gennemskue Iteratoren - og er ikke interesseret i at huske alle mine \"Key\"\'s for at kunne hente dem enkeltvis med get(Key)
Avatar billede logical Nybegynder
14. december 2001 - 16:37 #1
Iterator it = map.values();

Eller (nøglerne)

Iterator it = map.keySet();

Et Map har altid keys og values, derfor er der to collections at vælge fra.
Avatar billede sbhansen Nybegynder
14. december 2001 - 16:41 #2
Du får pointene logical - selv om jeg faktisk i samme sekund som du svarede var på vej ind for at lukke spørgsmålet - jeg implementerer istedet en arraylist - hvor iteratoren er givet... Men jeg kan jo vende tilbage til din kode, hvis jeg senere får brug for det. Men det vil altså sige, i ovenstående, at en Map har en Iterator liggende klar - for det fremgår ikke af de beskrivelsen af denne (de steder hvor jeg har ledt)
/Søren
Avatar billede logical Nybegynder
14. december 2001 - 16:44 #3
Et map har ingen iterator i sit interface, kun to metoder, som hedder henholdsvis:

public Collection values();  // Values are arbitrary objects.
public Set keySet(); // Keys are unique and non-null

Derfra kan du trække iteratoren (Som normalt med en Collection), og nu viser jeg den korrekte syntaks :-)

Iterator it = map.values().iterator();
Iterator it = map.keySet().iterator();
Avatar billede sbhansen Nybegynder
14. december 2001 - 21:06 #4
gracias senõr logicos!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester