Más específicamente, quiero una interfaz para comparar objetos que solo se pueden comparar por igualdad [p. Ej. números complejos] pero no tienen un orden total en ellos. Debe tener [Nota que sólo devuelve un boolean sí/no]Interfaz IEqualityComparer en Java
boolean Equals(T object1, T object2);
y una función de código hash. De modo que cuando los distribuyo en cubos utilizando objetos para recoger objetos "iguales", 2 objetos "iguales" no terminan en dos cubos diferentes.
int getHashCode(T object);
¿Java tiene uno? Busqué y no pude encontrarlo.
estoy tratando de utilizar esto en Hadoop MapReduce para distribuir objetos "iguales" a reducir mismo trabajo para que pueda operar en todos los objetos "iguales". Solo me importa si los objetos son iguales o no y no necesito un orden total. Pero si dos objetos son iguales, deberían tener el mismo código hash. De lo contrario, terminarán en dos trabajos de reducción diferentes.
Tenga en cuenta que lo que sé de los iguales y código hash del objeto. Pero quiero un comparador externo que, digamos, depende de solo una parte de un objeto. Entonces, la noción de igualdad de objeto difiere de la mía.
No tengo idea acerca de la analogía de C#, pero ¿has verificado la clase 'Object'? Tiene los métodos 'equals()' y 'hashCode()'. Básicamente es heredado (y anulable) en todas las clases. http://download.oracle.com/javase/6/docs/api/java/lang/Object.html ¿O tal vez necesitas el 'Comparador'? http://download.oracle.com/javase/6/docs/api/java/util/Comparator.html – BalusC
No, quiero un comparador externo. Tengo una noción diferente de "igualdad" de la igualdad de los objetos mismos.Supongamos que quiero comparar solo una parte del objeto, pero el objeto itslef implementa la igualdad en todos los campos. – Fakrudeen
java.util estándar no es compatible con una funcionalidad similar. – bestsss