Avatar billede petersss Nybegynder
11. april 2004 - 21:33 Der er 6 kommentarer og
1 løsning

java.util.Hashtable

Nedenstående skaber vel en kollision?

    Hashtable vufmiav = new Hashtable(10);
    vufmiav.put(new Integer(1),new String("hej"));
    vufmiav.put(new Integer(1),new String("hej2"));
    System.out.println(vufmiav.get(new Integer(1)));

Det giver outputtet "hej2".
Hvordan hentes strengen "hej" ? Den bliver vel lagret et andet sted  ved åben addressering?
Avatar billede arne_v Ekspert
11. april 2004 - 21:36 #1
Den sidste put overskriver den første put.

"hej" er væk. Memory bliver GC'et ved lejlighed.
Avatar billede petersss Nybegynder
11. april 2004 - 21:39 #2
hmm, i java 1.4.2 api docs står der om Hashtable: "Note that the hash table is open: in the case of a "hash collision", a single bucket stores multiple entries, which must be searched sequentially."
Avatar billede arne_v Ekspert
11. april 2004 - 21:41 #3
Ja - men det er kun forskellige key værdier som har samme hash værdi.
Avatar billede petersss Nybegynder
11. april 2004 - 21:49 #4
hvilken hash funktion benyttes egentlig? hvis key fx. er integers mellem 1 og 100, og jeg ved at der er 10 keys. Integer.hashcode returnerer integer-værdien.
Avatar billede arne_v Ekspert
11. april 2004 - 21:55 #5
Den bruger objektets hashCode metode modulus capacity
Avatar billede petersss Nybegynder
11. april 2004 - 22:04 #6
tak, gider du skrive et svar, så du får dine point
Avatar billede arne_v Ekspert
11. april 2004 - 22:05 #7
svar
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