Ang dalawang bagay ba ay palaging magiging pantay kapag ang kanilang compareTo () na pamamaraan ay nagbabalik ng zero?
Ang dalawang bagay ba ay palaging magiging pantay kapag ang kanilang compareTo () na pamamaraan ay nagbabalik ng zero?

Video: Ang dalawang bagay ba ay palaging magiging pantay kapag ang kanilang compareTo () na pamamaraan ay nagbabalik ng zero?

Video: Ang dalawang bagay ba ay palaging magiging pantay kapag ang kanilang compareTo () na pamamaraan ay nagbabalik ng zero?
Video: ๐ŸŒŸ ENG SUB | Versatile Mage | Full Version EP37-48 | Yuewen Animation 2024, Nobyembre
Anonim

Ito ay inirerekomenda iyon compareTo lamang nagbabalik 0, kung isang tawag sa katumbas sa ang parehong mga bagay gagawin bumalik totoo: compareTo (e2) == 0 ay may pareho boolean na halaga bilang e1. katumbas (e2) para sa bawat e1 at e2 ng klase C. Tandaan na null ay hindi isang halimbawa ng anumang klase, at e.

Higit pa rito, posible bang magbalik ng false ang katumbas () kahit na magkapareho ang nilalaman ng dalawang bagay?

4 Mga sagot. Sa java ang paraan ng pampublikong boolean katumbas ( Bagay obj) ay minana mula sa Bagay . Gayunpaman, ang pagpapatupad ng pamamaraan tulad ng tinukoy sa Bagay klase ay iyon ang katumbas paraan ay ibalik kung at lamang kung ang dalawang bagay inihahambing ay ang pareho halimbawa.

Kasunod nito, ang tanong ay, bakit ang compareTo () ay dapat na pare-pareho sa equals () na pamamaraan sa Java? Ito ay dahil ang Map interface ay tinukoy sa mga tuntunin ng katumbas operasyon, ngunit ginagawa ng isang mapa ang lahat ng pangunahing paghahambing gamit ang nito compareTo (o ihambing) paraan , kaya dalawang susi ang itinuturing pantay sa pamamagitan nito paraan ay, mula sa pananaw ng pinagsunod-sunod na mapa, pantay.

Ang pagpapanatiling nakikita ito, ano ang pagkakaiba sa pagitan ng == katumbas ng () at compareTo () na pamamaraan?

compareTo : Naghahambing ng dalawang string sa leksikograpikal. katumbas : Inihahambing ang string na ito sa tinukoy na bagay. compareTo naghahambing ng dalawang string sa pamamagitan ng kanilang mga character (sa parehong index) at nagbabalik ng integer (positibo o negatibo) nang naaayon. katumbas ng() sinusuri kung ang dalawang bagay ay pareho o hindi at nagbabalik ng boolean.

Maaari ba nating i-override ang compareTo method?

I-override ang compareTo Method Dapat itong magbalik ng negatibong integer(karaniwan ay -1), kung ang kasalukuyang nagti-trigger na bagay ay mas mababa kaysa sa naipasa isa , at positive integer (karaniwang +1) kung mas malaki kaysa, at 0 kung katumbas. ihambing Sa pamamaraan ay dapat magtapon ng isang pagbubukod kung ang naipasa na bagay ay may hindi tugmang uri o null.

Inirerekumendang: