A do të jenë gjithmonë të barabartë dy objekte kur metoda e tyre compareTo () kthen zero?
A do të jenë gjithmonë të barabartë dy objekte kur metoda e tyre compareTo () kthen zero?

Video: A do të jenë gjithmonë të barabartë dy objekte kur metoda e tyre compareTo () kthen zero?

Video: A do të jenë gjithmonë të barabartë dy objekte kur metoda e tyre compareTo () kthen zero?
Video: Штукатурка стен - самое полное видео! Переделка хрущевки от А до Я. #5 2024, Nëntor
Anonim

Ajo është rekomandoi që Krahaso me vetëm kthehet 0, nëse një telefonatë për barazohet në të njëjtat objekte do kthimi e vertete: Krahaso me (e2) == 0 ka të njëjtën gjë vlera boolean si e1. barazohet (e2) për çdo e1 dhe e2 të klasës C. Vini re se null është jo një shembull i ndonjë klase, dhe e.

Për më tepër, a është e mundur që barazimet () të kthejnë false edhe nëse përmbajtja e dy objekteve është e njëjtë?

4 Përgjigje. Në java metoda publike boolean barazohet ( Objekt obj) është trashëguar nga Objekt . Megjithatë, zbatimi i metodës siç përcaktohet në Objekt klasa është se barazohet metoda do kthehen nëse dhe vetëm nëse të dy objekte duke u krahasuar janë njëjtë shembull.

Më pas, pyetja është, pse metoda compareTo () duhet të jetë konsistente me metodën e barabartë () në Java? Kjo është kështu sepse ndërfaqja e Hartës është përcaktuar në terma të barazohet operacion, por një hartë kryen të gjitha krahasimet kryesore duke përdorur atë Krahaso me (ose krahasoni) metodë , pra dy çelësa që konsiderohen të barabartë me këtë metodë janë, nga pikëpamja e hartës së renditur, të barabartë.

Duke e mbajtur këtë parasysh, cili është ndryshimi midis metodës == barabartë () dhe krahasuar me ()?

Krahaso me : Krahason dy vargje leksikografikisht. barazohet : Krahason këtë varg me objektin e specifikuar. Krahaso me krahason dy vargje sipas karaktereve të tyre (në të njëjtin indeks) dhe kthen një numër të plotë (pozitiv ose negativ) në përputhje me rrethanat. e barabartë () kontrollon nëse dy objekte janë të njëjta apo jo dhe kthen një boolean.

A mund të anashkalojmë metodën compareTo?

Anuloni metodën krahasuar me Duhet të kthejë një numër të plotë negativ (zakonisht -1), nëse objekti aktual i aktivizimit është më i vogël se ai i kaluar një , dhe numër i plotë pozitiv (zakonisht +1) nëse është më i madh se, dhe 0 nëse është i barabartë. Metoda e krahasimit duhet të hedh një përjashtim nëse objekti i kaluar ka tip të papajtueshëm ose null.

Recommended: