Aké je použitie metódy overriding equals v jazyku Java?
Aké je použitie metódy overriding equals v jazyku Java?

Video: Aké je použitie metódy overriding equals v jazyku Java?

Video: Aké je použitie metódy overriding equals v jazyku Java?
Video: Java Multithreading : AtomicReference, ScheduledExecutorService и монада Either. Многопоточность. 2024, Apríl
Anonim

Prepísať sa rovná a hashCode v Java

rovná sa () metóda je použité na porovnanie objektov z hľadiska rovnosti, zatiaľ čo hashCode je použité aby sa vygeneroval celočíselný kód zodpovedajúci tomuto objektu

Aké je použitie metódy rovná sa v jazyku Java?

The rovná sa () metóda porovná dva objekty z hľadiska rovnosti a vráti hodnotu true, ak sú rovný . The rovná sa () metóda poskytované v triede Object používa operátor identity (==) na určenie, či ide o dva objekty rovný . Pre primitívne dátové typy to dáva správny výsledok.

Okrem toho, ako prepíšete metódu rovná sa v jazyku Java? Vo vyššie uvedenej časti kódu triedy Person má prepísanú metódu equals(), ktorá využíva nasledujúci postupný prístup:

  1. Ak je odkaz na tento objekt rovnaký ako odkaz na objekt argumentu, vráti hodnotu true.
  2. Ak je argument nulový, vráti hodnotu false.
  3. Ak objekty nie sú z rovnakej triedy, vráťte false.

Prečo teda potrebujeme prepísať metódu rovná sa v Jave?

Trieda String prepíše a rovná sa metóda zdedil z triedy Object a implementoval logiku na porovnanie dvoch objektov String znak po znaku. Dôvodom je rovná sa metóda v triede Object odkazuje rovnosť, pretože nevie, ako robiť nič iné.

Aké je použitie prepísania metódy hashCode a rovná sa v jazyku Java?

ak trieda prepíše rovná sa , musí prepísať hashCode . keď sú obaja prepísané , rovná sa a hashCode musieť použitie rovnaký súbor polí. ak sú dva predmety rovný , potom ich hashCode hodnoty musia byť rovný tiež. ak je objekt nemenný, potom hashCode je kandidát na ukladanie do vyrovnávacej pamäte a lenivú inicializáciu.

Odporúča: