Articles of hashcode

Entendendo o funcionamento de equals e hashCode em um HashMap

Eu tenho este código de teste: import java.util.*; class MapEQ { public static void main(String[] args) { Map m = new HashMap(); ToDos t1 = new ToDos(“Monday”); ToDos t2 = new ToDos(“Monday”); ToDos t3 = new ToDos(“Tuesday”); m.put(t1, “doLaundry”); m.put(t2, “payBills”); m.put(t3, “cleanAttic”); System.out.println(m.size()); } } class ToDos{ String day; ToDos(String d) { day = […]

Boa function hash para seqüências de caracteres

Eu estou tentando pensar em uma boa function de hash para seqüências de caracteres. E eu estava pensando que seria uma boa idéia resumir os valores unicode para os primeiros cinco caracteres da string (assumindo que ela tenha cinco, caso contrário, pare onde ela termina). Isso seria uma boa ideia, ou é ruim? Eu estou […]

Qual é o código hash de um object se hashCode () não for substituído?

Se o método hashCode () não for substituído, qual será o resultado da chamada de hashCode () em qualquer object em Java?

Por que usar um número primo no hashCode?

Eu estava me perguntando por que os primos são usados ​​no método hashCode() uma class? Por exemplo, ao usar o Eclipse para gerar meu hashCode() , sempre há o número primo 31 usado: public int hashCode() { final int prime = 31; //… } Referências: Aqui está uma boa cartilha sobre Hashcode e artigo sobre […]

As chaves hashmap mutáveis ​​são uma prática perigosa?

É uma prática ruim usar objects mutáveis ​​como chaves de hashmap? O que acontece quando você tenta recuperar um valor de um Hashmap usando uma chave que foi modificada o suficiente para alterar seu hashcode? Por exemplo, dado class Key { int a; //mutable field int b; //mutable field public int hashcode() return foo(a, b); […]

Como um Java HashMap manipula objects diferentes com o mesmo código hash?

De acordo com o meu entendimento, penso: É perfeitamente legal que dois objects tenham o mesmo código hash. Se dois objects forem iguais (usando o método equals ()), eles terão o mesmo hashcode. Se dois objects não são iguais, eles não podem ter o mesmo código de hash Estou correcto? Agora, se estou correto, tenho […]

Melhor implementação para o método hashCode

Como podemos decidir sobre a melhor implementação do hashCode() para uma coleção (supondo que o método equals tenha sido substituído corretamente)?

Como posso gerar um hash MD5?

Existe algum método para gerar hash MD5 de uma string em Java?

Por que é importante replace GetHashCode quando o método Equals é substituído?

Dada a seguinte class public class Foo { public int FooId { get; set; } public string FooName { get; set; } public override bool Equals(object obj) { Foo fooItem = obj as Foo; return fooItem.FooId == this.FooId; } public override int GetHashCode() { // Which is preferred? return base.GetHashCode(); //return this.FooId.GetHashCode(); } } Eu […]

Por que preciso replace os methods equals e hashCode em Java?

Recentemente eu li através deste documento de trabalho do desenvolvedor . O documento é todo sobre a definição de hashCode() e equals() eficaz e correta, no entanto, não sou capaz de descobrir por que precisamos replace esses dois methods. Como posso tomar a decisão de implementar esses methods com eficiência?