DJViking Skrevet 23. februar 2007 Del Skrevet 23. februar 2007 Jeg har opprettet en HashMap<String, String>() som inneholder verdier hentet fra database. Når jeg ser på denne HashMap er det mange tomme innslag i tabellen. De som er tom er satt som null. Mellom hvert key-value par kan det være flere nullforekomster. Hvorfor oppretter HashMap så mange tomme "null"forekomster? Hvordan kan jeg blir kvitt disse for å få optimalisert HashMapobjektet mitt for søking? Lenke til kommentar
CruellaDeVille Skrevet 23. februar 2007 Del Skrevet 23. februar 2007 Jeg har opprettet en HashMap<String, String>() som inneholder verdier hentet fra database. Når jeg ser på denne HashMap er det mange tomme innslag i tabellen. De som er tom er satt som null. Mellom hvert key-value par kan det være flere nullforekomster. Hvorfor oppretter HashMap så mange tomme "null"forekomster? Hvordan kan jeg blir kvitt disse for å få optimalisert HashMapobjektet mitt for søking? 8007912[/snapback] Med fare for at jeg er fullstendig glemsk så skal det være hull i en hashmap. Indeksen i en hashmap er hashing av key og plasseringen bestemmes på bakgrunn av verdien av denne hashingen. Hvis hashmapen er for liten får man kollisjoner og da må elementer flyttes til en annen indeks enn opprinnelig tiltenkt. Når en skal søke i en hashmap og elementene ikke ligger der hashen skulle tilsi tar det også mye lenger tid. At en hashmap har mange tomme elementer gjør ingenting. Etterhvert som du fyller på blir det mindre plass og når hashmapen har nådd lastefaktor (enten default eller en du har satt selv) blir den utvidet og alle elementer plasseres på nytt ved hjelp av rehash. Lenke til kommentar
thpost Skrevet 26. februar 2007 Del Skrevet 26. februar 2007 (endret) LESTE FOREGÅENDE POST EN GANG TIL OG HELT RIKTIG var det. Om hash funksjonen blir den samme som et tidligere element er java implenetasjonen slik at du den legger elementene i en liste i denne posisjonen. Størrelsen på hashmap blir initielt bestemt av load faktoren Rehashing skjer hvis det blir flere hash kollisjoner enn det er "buckets" i en nøkkel element mapping.. (da utvides hashmappet).. hmmm.. dette var jeg ikke god til å forklare sjekk: Hashmap JavaDoc Endret 26. februar 2007 av thpost Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå