Avatar billede kovalt Nybegynder
16. december 2002 - 14:47 Der er 7 kommentarer og
1 løsning

Gennemløbe HashMap

Hej alle-zu-sammen...

Jeg har et HashMap med en masse Items i. De ligger i HashMappet som (itemName, item). Hver item-objekt har en boolean (isUsed), der beskriver hvorvidt itemmet er brugt eller ej. Jeg vil gerne ha en liste ud over alle elementerne i HashMappet hvor det oplyses hvorvidt idUsed er true eller false. Har følgende man kan ikke lige komme videre:

        for(int i = 0; i < itemMap.size(); i++) {
            System.out.println(i + ". item er:" + "et eller andet :-)"
        }       

på forhånd tak :-)
Avatar billede arne_v Ekspert
16. december 2002 - 14:50 #1
Iterator it = itemMap.keySet().iterator();
while(it.hasNext()) [
  String itemName = (String)it.next();
  X item = (X)itemMap.get(itemName);
}
Avatar billede kovalt Nybegynder
16. december 2002 - 15:40 #2
jeg kender ikke itemName
Avatar billede kovalt Nybegynder
16. december 2002 - 15:49 #3
man kan med andre ord ikke trække elementerne ud af et hashMap pga placeringen 1,2,3 osv i stedet for nøglen (i dette tilfælde itemName)
Avatar billede arne_v Ekspert
16. december 2002 - 16:01 #4
HashMap er key-value par. Der er ikke nogen række-følge 1,2,3.

Hvis du vil have en række-følge kan du bruge Vector eller
ArrayList (eller 2 af dem - en til itemName og en til
item), fordi der kan du bruge get(i) til at hente
det i'te element.
Avatar billede arne_v Ekspert
16. december 2002 - 16:25 #5
Men du kan naturligvis også iterere gennem hash mappen
og finde den i're itemName og det tilsvarende item.
Avatar billede viht Nybegynder
16. december 2002 - 16:26 #6
Hvorfor itererer du på keyset? Hvis nøgleværdierne er ligegyldige kan du jo ligeså godt bare løbe igennem elementerne:

        HashMap map = new HashMap();
        for( int i = 0; i < 3; i++ )
            map.put(""+i, new Integer(i));
   
        Iterator it = map.entrySet().iterator();
        while( it.hasNext() )
            System.out.println (it.next());
Avatar billede viht Nybegynder
16. december 2002 - 16:27 #7
Udskriver 2=2, 1=1 og 0=0
Avatar billede viht Nybegynder
16. december 2002 - 16:29 #8
wups, det kom mens jeg skrev, sorry arne_v.
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

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger IT-Supporter til Svanemøllen

Lægemiddelstyrelsen

Løsningsarkitekt

Unik System Design A/S

DevOps Engineer