La documentación del VS2005, Directrices para la sobrecarga igual a () y el operador == (Guía de progtwigción C #) indica en parte No se recomienda el operador de anulación == en tipos no inmutables. La documentación más nueva de .NET Framework 4, Pautas para la implementación de Equals y el operador de igualdad (==) […]
¿Cómo debería implementar hashCode() y equals() para la siguiente clase en Java? class Emp { int empid ; // unique across all the departments String name; String dept_name ; String code ; // unique for the department }
He leído aproximadamente 10 preguntas diferentes sobre cuándo y cómo anular GetHashCode pero todavía hay algo que no entiendo del todo. La mayoría de las implementaciones de GetHashCode se basan en los códigos hash de los campos del objeto, pero se ha mencionado que el valor de GetHashCode nunca debería cambiar durante la vigencia del […]
Por lo que yo entiendo, Scala == define la igualdad natural de dos objetos. Esperaba que Array(0,1,2) == Array(0,1,2) comparara la igualdad natural. Por ejemplo, comprueba si todos los elementos de la matriz devuelven verdadero cuando se compara con los elementos correspondientes de la otra matriz. La gente me dijo que Scala’s Array es solo […]
Estoy trabajando con un modelo de dominio y estaba pensando en las diversas formas en que tenemos que implementar estos dos métodos en .NET. ¿Cuál es tu estrategia preferida? Esta es mi implementación actual: public override bool Equals(object obj) { var newObj = obj as MyClass; if (null != newObj) { return this.GetHashCode() == newObj.GetHashCode(); […]
Ok, he escuchado de muchos lugares y fonts que siempre que sobreescribo el método equals (), también tengo que anular el método hashCode (). Pero considere la siguiente pieza de código package test; public class MyCustomObject { int intVal1; int intVal2; public MyCustomObject(int val1, int val2){ intVal1 = val1; intVal2 = val2; } public boolean […]
Considere la clase de prueba simple: import java.math.BigDecimal; /** * @author The Elite Gentleman * */ public class Main { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub BigDecimal x = new BigDecimal(“1”); BigDecimal y = new BigDecimal(“1.00”); System.out.println(x.equals(y)); System.out.println(x.compareTo(y) == 0 ? “true”: “false”); } } […]
Por favor, aclara mi duda en Hashset. Considera el siguiente código class Person { String name; Person(String n) { name=n; } public String getName() { return name; } @Override public boolean equals(Object arg0) { System.out.println(“in equals”); Person obj=(Person)arg0; System.out.println(“1st “+getName()); System.out.println(“2nd “+obj.getName()); if(this.getName().equals(obj.getName())) { return true; } return false; } @Override public int hashCode() { […]
Al probar la igualdad de String ‘s en Java, siempre he usado equals() porque para mí este parece ser el método más natural para ello. Después de todo, su nombre ya dice lo que está destinado a hacer. Sin embargo, un colega mío me dijo recientemente que se le había enseñado a usar compareTo() == […]
Tengo curiosidad por saber qué piensa la gente de aquí usando org.apache.commons.lang.builder EqualsBuilder / HashCodeBuilder para implementar equals / hashCode ? ¿Sería una mejor práctica que escribir la tuya? ¿Funciona bien con Hibernate? ¿Cual es tu opinion?