Articles of hashcode

Cómo implementar hashCode y el método equals

¿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 }

Objetos mutables y hashCode

Tener la siguiente clase: public class Member { private int x; private long y; private double d; public Member(int x, long y, double d) { this.x = x; this.y = y; this.d = d; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + […]

Cambio de bit en la implementación efectiva de Java hashCode ()

Me preguntaba si alguien podría explicar en detalle qué (int)(l ^ (l >>> 32)); lo hace en la siguiente implementación de hashcode (generada por eclipse, pero igual que Effective Java): private int i; private char c; private boolean b; private short s; private long l; private double d; private float f; @Override public int hashCode() […]

¿Cómo calculo un buen código hash para una lista de cadenas?

Fondo: Tengo una breve lista de cadenas. El número de cadenas no es siempre el mismo, pero casi siempre son del orden de un “puñado” En nuestra base de datos guardaremos estas cadenas en una 2da tabla normalizada Estas cadenas nunca se cambian una vez que se escriben en la base de datos. Deseamos poder […]

Consejos generales y directrices sobre cómo sobrescribir correctamente object.GetHashCode ()

Según MSDN , una función hash debe tener las siguientes propiedades: Si dos objetos se comparan como iguales, el método GetHashCode para cada objeto debe devolver el mismo valor. Sin embargo, si dos objetos no se pueden comparar como iguales, los métodos GetHashCode para los dos objetos no tienen que devolver valores diferentes. El método […]

Probabilidad de obtener un valor duplicado al llamar a GetHashCode () en cadenas

Quiero saber la probabilidad de obtener valores duplicados cuando llamo al método GetHashCode() en instancias de string . Por ejemplo, según esta publicación del blog, blair y brainlessness tienen el mismo código hash (1758039503) en una máquina x86.

Doble en HashMap

Estaba pensando en usar un doble como la clave de un HashMap, pero sé que las comparaciones de coma flotante no son seguras, eso me hizo pensar. ¿El método equals en la clase Double también es inseguro? Si es así, entonces el método hashCode probablemente también sea incorrecto. Esto significaría que usar Double como la […]

¿Cuál es la diferencia entre == operator y equals ()? (con hashcode () ???)

Estaba aprendiendo hashcode con más profundidad y pensé que: 1. Si reemplaza equals (), también debe reemplazar hashcode (). 2. Para encontrar si 2 objetos son el mismo objeto, use == operador Dados esos 2 factores, en Java asumí que cuando == operator se usa para comparar si 2 instancias son iguales o no, if(object1 […]

¿Por qué debería anular hashCode () cuando anulo el método equals ()?

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 […]

Buena excepción GetHashCode () para la lista de objetos Foo respetando el orden

EnumerableObject : IEnumerable envuelve una List Si EnumerableObject a.SequenceEquals( EnumerableObject b) , entonces son iguales. Por lo tanto, se debe implementar un GetHashCode . El problema es XORing cada elemento en la lista devolverá el mismo código hash para cualquier lista con todos y solo los mismos elementos, independientemente de la orden. Esto está bien […]