Wpis z mikrobloga

Jak duża jest szansa na to, że dwa różne słowa będą miały ten sam HashCode? Potrzebuje jakiejś sprawnej metody do wyznaczania jakichś liczb reprezentujących Stringi i zastanawiam się czy String.HashCode() to dobry pomysł.
#java
#programowanie
  • 8
  • Odpowiedz
@Pawlis: no to możesz zrobić "warunkowo" dwustopniowo.

Każda struktura danych oparta o Hashe i zakłada możliwość tzw. kolizji - dlatego zazwyczaj "liście" to nie pojedyncze elementy, a listy (tzw. buckets).

Więc w 1. korku należy zrobić porównanie HashCode, a jak będzie taki sam, to obowiązkowo odnieść się do porównania
  • Odpowiedz
@Pawlis: implementajca hasha jest znana, możesz łatwo sprawdzić, które stringi są z którymi w kolizji. Co do "jakiejś" metody do wyznaczania "jakichś" metod to ciężko mi powiedzieć, bo za mało konkretów. Javowy hash będzie raczej naszybszy, bo hashCody są zapamiętywane i sama implementacja ma być szybka
  • Odpowiedz