Java хэл дээр overriding equals аргыг юу ашигладаг вэ?
Java хэл дээр overriding equals аргыг юу ашигладаг вэ?

Видео: Java хэл дээр overriding equals аргыг юу ашигладаг вэ?

Видео: Java хэл дээр overriding equals аргыг юу ашигладаг вэ?
Видео: Java Multithreading : AtomicReference, ScheduledExecutorService и монада Either. Многопоточность. 2024, Арваннэгдүгээр
Anonim

Тэнцүү тоог хүчингүй болгох болон hashCode in Java

тэнцүү байна () арга байна ашигласан hashCode байхад объектуудыг тэгш байдлын үүднээс харьцуулах ашигласан тухайн объектод харгалзах бүхэл тооны кодыг үүсгэх

Эндээс Java хэл дээр тэнцүү аргыг юу гэж ашигладаг вэ?

The тэнцүү байна () арга тэгш байдлын үүднээс хоёр объектыг харьцуулж, хэрэв байгаа бол үнэнийг буцаана тэнцүү . The тэнцүү байна () арга Object ангид өгөгдсөн ашигладаг хоёр объект байгаа эсэхийг тодорхойлох оператор (==). тэнцүү . Анхдагч өгөгдлийн төрлүүдийн хувьд энэ нь зөв үр дүнг өгдөг.

Нэмж хэлэхэд, та Java хэл дээрх тэнцүү аргыг хэрхэн хүчингүй болгох вэ? Дээрх кодын ангид Person нь дарагдсан тэнцүү() аргатай бөгөөд дараах алхам алхмаар аргачлалыг хэрэгжүүлсэн:

  1. Хэрэв энэ объектын лавлагаа нь аргумент объектын лавлагаатай ижил байвал үнэнийг буцаана.
  2. Хэрэв аргумент нь хоосон байвал худал буцаана.
  3. Хэрэв объектууд нэг ангид хамаарахгүй бол false гэж буцаана.

Үүний дагуу бид яагаад Java хэл дээрх тэнцүү аргыг хүчингүй болгох хэрэгтэй байна вэ?

String анги хүчингүй болгодог нь тэнцүү арга Энэ нь Object ангиас удамшсан бөгөөд хоёр String объектыг тэмдэгтээр нь харьцуулах логикийг хэрэгжүүлсэн. Шалтгаан нь тэнцүү арга Object ангид тэгш байдлын лавлагаа нь өөр юу хийхээ мэдэхгүй байгаатай холбоотой юм.

Java хэл дээр hashCode ба тэнцүү аргыг хүчингүй болгох нь юу вэ?

хэрвээ анги нь дарагдвал тэнцүү байна , байх ёстой hashCode-г хүчингүй болгох . тэд хоёулаа байх үед дарагдсан , тэнцүү байна болон hashCode ёстой ашиглах ижил талбаруудын багц. хэрэв хоёр объект байгаа бол тэнцүү , дараа нь тэдний hashCode үнэт зүйлс байх ёстой тэнцүү түүнээс гадна. хэрэв объект өөрчлөгдөхгүй бол hashCode нь кэш хийх, залхуу эхлүүлэхэд нэр дэвшигч юм.

Зөвлөмж болгож буй: