@karsiwek: Dobre. Ale brakuje jeszcze jednej ciekawostki - co się stanie jeśli hashcode będzie obliczany źle (np return 3; ) i wszystkie obiekty zostaną dodane do jednego bucketu. Normalnie powinny zostać dodane do linkedlisty i mieć złożoność O(n)
A gdyby tak ... złożoność logarytmiczna? Drzewo? ( ͡°͜ʖ͡°) http://openjdk.java.net/jeps/180 Tylko pamiętajcie, że obiekt (wartość) nie może być prymitywem (int) i musi implementować Comparable.
@MetroStation: wlasnie starałem się o tym napisać w ostatnim punkcie - źle zaprojektowany hashcode da złożoność lg(n). ciekawostka jest taka, że obiety nie muszą implementować Comparable - algorytm najpierw porównuje hashCody (bo do jednego bucketa mogą trafić 2 różne hashcody) i dopiero wtedy sprawdza czy jest comparable i wykonuje compareTo. Tyle ciekawych rzeczy w jednej "prostej" klasie :D
https://steemit.com/java/@karsiwek/java-interview-questions-1-hashmap
taki tam "attempt"
Normalnie powinny zostać dodane do linkedlisty i mieć złożoność O(n)
A gdyby tak ... złożoność logarytmiczna? Drzewo? ( ͡° ͜ʖ ͡°)
http://openjdk.java.net/jeps/180
Tylko pamiętajcie, że obiekt (wartość) nie może być prymitywem (int) i musi implementować Comparable.