equals()
è disponibile per tutte le classi di raccolta java dalla classe Object
. Questo metodo è anche dichiarato nell'interfaccia Comparator
, quindi qual è lo scopo di dichiarare questo metodo in Comparator? nel qual caso viene usato e come?uso del metodo equals() nell'interfaccia comparatore? Il metodo
risposta
-quando Confronto dichiara viene confrontato con un altro oggetto (argomento)
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 chesgn(comp1.compare(o1, o2))==sgn(comp2.compare(o1, o2))
per ogni riferimento oggettoo1
eo2
.
Il metodo può essere utilizzato per stabilire se due comparatori distinti impongono o meno lo stesso ordine.
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.
È solo una forma sovradimensionata del metodo Equals dell'oggetto per farvi sapere se due oggetti sono dello stesso tipo di comparatore.
Penso che il motivo principale è quello di far capire che equals
metodo è per testare la Comparator
sé. 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.
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")
- 1. Java TreeMap (comparatore) e ottenere il metodo ignorando il comparatore
- 2. Ottimizzazione metodo equals()
- 3. Implementazione del metodo equals in java
- 4. Metodo Overriding Equals in Structures
- 5. Il comportamento di equals (metodo) in Java
- 6. Come funziona il metodo equals() in Java
- 7. Uso appropriato del metodo statico
- 8. Uso errato del metodo .select()
- 9. L'istruzione switch Java 7 con String usa il metodo equals()?
- 10. Utilizzo del metodo equals() con String e Object in Java
- 11. Esiste un equivalente del metodo Java equals in C++?
- 12. I "si" parola chiave e la forzatura del metodo Equals
- 13. Ruby-uso corretto del metodo Date.step()
- 14. Esistono due tipi di metodo equals()
- 15. Uso WaitOne() metodo
- 16. Uso del metodo this.own() nel dojo
- 17. Uso generico Metodo FromEvent
- 18. Uso `+ =` con metodo `send`
- 19. Perché dobbiamo sovrascrivere il metodo equals() in Java?
- 20. Perché il comparatore si dichiara uguale?
- 21. Uso della classe corrente nella dichiarazione del metodo statico Java
- 22. Porta di chiamata del metodo remoto in uso
- 23. Differenza tra operatore == e metodo Equals() in C#?
- 24. java: uso del metodo executeQuery (stringa) non supportato errore?
- 25. Uso di: opzione di metodo in defgeneric
- 26. Il metodo XMLHttpRequest del metodo javascriptHeader dell'oggetto javascript non funziona
- 27. Come trovare il metodo FULL del metodo di chiamata C#
- 28. Il metodo @parameters viene eseguito prima del metodo @beforeclass
- 29. Il comparatore <String> deve ignorare il metodo super-classe
- 30. Uso di Guice senza metodo principale