2012-02-29 12 views

risposta

0

-quando Confronto dichiara viene confrontato con un altro oggetto (argomento)

10

qual è lo scopo di dichiarare questo metodo in confronto?

ritengo è modo del progettista di evidenziare il fatto che Comparator.equals() impone alcuni additional requirements su tutte le classi che implementano l'interfaccia:

Inoltre, questo metodo può restituire true solo se l'oggetto specificato è anche un comparatore e impone lo stesso ordine di questo comparatore. Pertanto, comp1.equals(comp2) implica che sgn(comp1.compare(o1, o2))==sgn(comp2.compare(o1, o2)) per ogni riferimento oggetto o1 e o2.

Il metodo può essere utilizzato per stabilire se due comparatori distinti impongono o meno lo stesso ordine.

4

Dal javadoc

Si noti che è sempre sicuro non di ignorare Object.equalsQ (Object). Tuttavia, in alcuni casi, l'override di questo metodo può migliorare le prestazioni di consentendo ai programmi di determinare che due distinti contatori impongono lo stesso ordine.

L'idea è semplicemente quella di essere in grado di consentire di non ordinare una raccolta che è già stata ordinata da un altro comparatore se ci si rende conto che il risultato finale sarà lo stesso.

Generalmente ha avuto poco uso, ma quando si ordinano raccolte molto grandi è qualcosa che si potrebbe voler esaminare.

0

È solo una forma sovradimensionata del metodo Equals dell'oggetto per farvi sapere se due oggetti sono dello stesso tipo di comparatore.

5

Penso che il motivo principale è quello di far capire che equals metodo è per testare la Comparator. Questo è ovvio quando ci pensi, ma posso immaginare che alcune persone potrebbero aspettarsi di essere in qualche modo semanticamente in relazione allo equals(Object) al metodo compare(T, T).

Consente inoltre la documentazione di alcune linee guida di buon senso quando due comparatori possono essere visualizzati come uguali.

In entrambi i casi, la presenza del metodo equals(Object) nell'interfaccia è esclusivamente a scopo di documentazione.

-2

Secondo la tua domanda, penso che sia usato per confrontare gli oggetti dopo la conversione in stringa. Metodi eqlas classe oggetto chek entrambi gli oggetti sono eqls o meno E metodo Competres chek dati oggetto come Hello.eqlas ("ciao")

Problemi correlati