Kommer två objekt alltid att vara lika när deras compareTo ()-metod returnerar noll?
Kommer två objekt alltid att vara lika när deras compareTo ()-metod returnerar noll?

Video: Kommer två objekt alltid att vara lika när deras compareTo ()-metod returnerar noll?

Video: Kommer två objekt alltid att vara lika när deras compareTo ()-metod returnerar noll?
Video: Gregory Chaitin: Complexity, Metabiology, Gödel, Cold Fusion 2024, April
Anonim

den är rekommenderade det jämföra med endast returnerar 0, om ett samtal till lika på samma föremål skulle lämna tillbaka Sann: jämföra med (e2) == 0 har samma booleskt värde som e1. lika (e2) för varje e1 och e2 i klass C. Observera att null är inte en instans av någon klass, och e.

Dessutom, är det möjligt för lika () att returnera falskt även om innehållet i två objekt är samma?

4 svar. I java metoden public boolean lika ( Objekt obj) ärvs från Objekt . Men implementeringen av metoden enligt definitionen i Objekt klass är att lika metod kommer återvända om och bara om de två föremål jämförs är de samma exempel.

Därefter är frågan varför compareTo () ska vara konsekvent med equals ()-metoden i Java? Detta beror på att kartgränssnittet är definierat i termer av lika operation, men en karta utför alla nyckeljämförelser med sin jämföra med (eller jämför) metod , så två nycklar som anses likvärdig av det här metod är, från den sorterade kartans synvinkel, likvärdig.

Med tanke på detta, vad är skillnaden mellan metoden == är lika med () och compareTo ()?

jämföra med : Jämför två strängar lexikografiskt. lika : Jämför denna sträng med det angivna objektet. jämföra med jämför två strängar med sina tecken (vid samma index) och returnerar ett heltal (positivt eller negativt) i enlighet därmed. lika() kontrollerar om två objekt är lika eller inte och returnerar en boolean.

Kan vi åsidosätta compareTo-metoden?

Åsidosätt jämförelsemetoden Det bör returnera ett negativt heltal (vanligtvis -1), om det aktuella utlösande objektet är mindre än det godkända ett , och positivt heltal (vanligtvis +1) om det är större än och 0 om det är lika. jämför med metoden bör kastar ett undantag om det skickade objektet har inkompatibel typ eller null.

Rekommenderad: