Junior — Middle
Czy każdemu obiektowi w Javie automatycznie przypisywany jest unikalny kod hash, czy to tylko zobowiązuje programistę do jego samodzielnej implementacji?
sobes.tech AI
Odpowiedź od AI
W Javie każdemu obiektowi domyślnie przypisywany jest unikalny kod hash za pomocą metody hashCode(), która jest zaimplementowana w klasie Object. Programista nie musi sam implementować tej metody, jeśli standardowa implementacja jest odpowiednia.
Jednakże, jeśli klasa nadpisuje metodę equals(), zaleca się również nadpisanie hashCode(), aby zapewnić poprawne zachowanie w kolekcjach takich jak HashMap czy HashSet.
Przykład nadpisania:
@Override
public int hashCode() {
return Objects.hash(field1, field2);
}