Equals i hashCode w Javie | Java PL

preview_player
Показать описание
Equals i hashCode to dwie metody w języku Java, które powinien znać każdy programista. W tym filmie przedstawiam dokładnie obydwie metody, ich kontrakty i zależności oraz przykłady implementacji.

Рекомендации по теме
Комментарии
Автор

Ale kozacko Ty to wytłumaczyłeś, razem z omówieniem kontraktu i kubełków, kozacko. Dzięki za film

sebon
Автор

Bardzo fajne i łatwo przyswajalne. Mnie teraz najbardziej zainteresowały te skróty klawiaturowe. Są w IntellyJ w Learning ale jakoś fajniej byłoby gdyby je ktoś opowiedział i w sytuacji gdy z nich skorzysta to je opisywał. Konstruktor zawsze wypisuje sam bo w ten sposób wiem, że i to, że sam go wypełniam jak i setery czy getery to się też tego uczę dedukując za każdym razem co robię. Ale nie ukrywam, że przyspiesza to pracę w późniejszym czasie. Nie widziałem jeszcze żeby ktoś je wszystkie opisywał, więc myślę, że mogłoby to Wam zwiększyć zasięg. Pozdrawiam i dzięki za fajne i przejrzyste wydanie tych prostych ale i szalenie ważnych metod.

karawanajedziedalej
Автор

łapa w gore, tylko dobrze by bylo jakbys cos zrobil z dzwiekiem bo zawsze musze na sluchawkach Ciebie sluchac bo nic nie slychac

molekuax
Автор

Z tego co mi wiadomo to do wyznaczania kubełków potrzeba jeszcze wykonać operacje % (modulo) gdzie po lewej stronie stoi hashCode klucza a po prawej ilość kubełków - 1 (domyślnie jest bodajże 16 kubełków 0-15). Co ciekawe gdy w kubełku znajduję się więcej niż 1 obiekt, elementy przechowywane są w Linked List. Po przekroczeniu bodajże 8 elementów w Linked List, struktura zmienia się na zbalansowane drzewo.

bartekperlinski
Автор

Odnośnie metody equals to: nullPointer jeśli name referencyjnej instancji jest null

viper
Автор

08:45 jeśli wiemy że przesłany obiekt jest typu Cat to po co wykonuje się to rzutowanie? I po co tworzyć zmienną o ?

Nie można by było napisać: if(name.equals(object.name) && age.equals(object.age)) ?

HUBERTUS
Автор

nie czaje, tego equals()... przeciez defaultowo equals() z Objectu sprawdz object indentity, to po co pisac kontrakt equals nowy, ktory w 1 ifie robi to samo?

zoltobialozielony
Автор

Fajny materiał.

Nie musisz pisać else jesli chcesz zrobić return. Wystarczy sam return
Druga spawa, kontrakt hashCode. Mianowicie jest tam napisane, że jeśli equals zwróci true, to hashCode dla 2 obiektów zwraca to samo. Napisałem program z metodą hashCode wykorzystując random, equals zwróciło true, hashCode różne wartości. Pewnie złamałem kontrakt, ale sam program działa bez problemów.
Podobna sprawa, gdy nie chce korzystać z map i nadpisze sam equals. Wszystko pytka, ale kontrakt pewnie jest złamany.

aaazzz
Автор

czy aby na pewno ta implemtancja quals jest poprawna? Wykorzystałeś tam operator instanceof a on sprawdza czy obiekt przypisany do referencji z lewej stony operatora jest typem lub PODTYPEM kklasy podanej z prawej strony, a wi raczej powinno być sprawdzenia za pomoca metody getClass(). Następnie nie sprawdziłeś czy porównywane Stringi nie są nullami, a przecież mogą być

klarezma
Автор

Chciałem obejrzeć na telefonie na siłowni jednak wszystko przeznaczone na dość duży ekran. Szkoda. Może wrócę do tego na komputerze. Można było zrobić zoom aby każdy na wszystkim mógł obejrzeć. Tutaj mamy 90% czarnego ekranu IDE które jest zbędne

ReDesignIT