Sobes.tech
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);
}