2012-02-29 13 views
11

equals() método está disponible para todas las clases de colección java de la clase Object. Este método también se declara en la interfaz Comparator, entonces, ¿cuál es el propósito de declarar este método en el Comparador? ¿En qué caso se usa y cómo?uso del método equals() en la interfaz del comparador?

Respuesta

0

-cuando Comparador declarar se compara con otro objeto (argumento)

10

cuál es el propósito de declarar este método en Comparador?

creo que es la forma que tiene el diseñador de destacar el hecho de que Comparator.equals() impone algunas additional requirements en las clases que implementan la interfaz:

Además, este método puede devolver true sólo si el objeto especificado es también una comparador e impone el mismo orden que este comparador. Por lo tanto, comp1.equals(comp2) implica que sgn(comp1.compare(o1, o2))==sgn(comp2.compare(o1, o2)) para cada referencia de objeto o1 y o2.

El método se puede utilizar para establecer si dos comparadores distintos imponen el mismo orden o no.

4

Desde el javadoc

en cuenta que es siempre segura no para anular Object.equals (Objeto). Sin embargo, anular este método puede, en algunos casos, mejorar el rendimiento al permitir que los programas determinen que dos comparadores distintos imponen el mismo orden.

La idea es simplemente poder permitirte no ordenar una colección que ya ha sido clasificada por otro comparador si te das cuenta de que el resultado final será el mismo.

En general, tuvo poco uso, pero cuando se ordenan colecciones muy grandes, es algo que tal vez desee examinar.

0

Es solo una forma omitida del método Equals del objeto para hacerle saber si dos objetos son del mismo tipo de comparador.

5

creo que la razón principal es dejar claro que equals método es para probar la Comparator. Esto es obvio cuando lo piensas, pero me imagino que algunas personas pueden esperar que equals(Object) (de alguna manera) se relacionen semánticamente con el método compare(T, T).

También permite la documentación de algunas pautas de sentido común para cuando dos comparadores se pueden ver como iguales.

De cualquier manera, la presencia del método equals(Object) en la interfaz es únicamente con fines de documentación.

-2

Según su pregunta, creo que se utiliza para comparar objetos después de la conversión en cadena. Métodos eqlas de la clase de objeto chek ambos Objeto son eqls o no Y el método Competes datos de objeto chek como Hello.eqlas ("hello")

Cuestiones relacionadas