Articles of hashcode

Como garantir que o hashCode () seja consistente com equals ()?

Ao sobrescrever a function equals () de java.lang.Object, os javadocs sugerem que, Em geral, é necessário replace o método hashCode sempre que esse método for substituído, de modo a manter o contrato geral para o método hashCode, que declara que objects iguais devem ter códigos hash iguais. O método hashCode () deve retornar um inteiro […]

Por que o hashCode () da String não é 0?

Eu observei no código-fonte Java 6 para String que hashCode armazena apenas valores diferentes de 0. A diferença no desempenho é exibida pelo seguinte trecho: public class Main{ static void test(String s) { long start = System.currentTimeMillis(); for (int i = 0; i < 10000000; i++) { s.hashCode(); } System.out.format("Took %d ms.%n", System.currentTimeMillis() – start); […]

Como você obtém a “referência de object” de um object em java quando toString () e hashCode () foram substituídos?

Eu gostaria de imprimir a “referência de object” de um object em Java para fins de debugging. Ou seja, para se certificar de que o object é o mesmo (ou diferente), dependendo da situação. O problema é que a class em questão herda de outra class, que substituiu toString () e hashCode (), o que […]

Implementação do HashCode do Java Array

Isso é estranho. Um colega de trabalho perguntou sobre a implementação de myArray.hashCode () em java. Eu pensei que sabia, mas depois fiz alguns testes. Verifique o código abaixo. O estranho que notei é que quando escrevi o primeiro sistema, os resultados foram diferentes. Note que é quase como se estivesse relatando um endereço de […]

Como o hashCode () é calculado em Java

Qual valor o método hashCode() está retornando em java? Eu li que é uma referência de memory de um object … Quando eu imprimir o valor de hash para o new Integer(1) é 1; para String(“a”) é 97. Estou confuso: é ASCII ou que tipo de valor é?

Consistência de hashCode () em uma string Java

O valor hashCode de uma String Java é calculado como ( String.hashCode () ): s[0]*31^(n-1) + s[1]*31^(n-2) + … + s[n-1] Há alguma circunstância (por exemplo, versão da JVM, fornecedor etc.) sob a qual a seguinte expressão será avaliada como falsa? boolean expression = “This is a Java string”.hashCode() == 586653468 Atualização # 1: Se […]

Qual é o uso de hashCode em Java?

Em Java, obj.hashCode() retorna algum valor. Qual é o uso desse código hash na programação?

Como devem ser equals e hashcode implementados ao usar o JPA e o Hibernate

Como devem ser equacionados os iguais e hashcode da class no Hibernate? Quais são as armadilhas comuns? A implementação padrão é boa o suficiente para a maioria dos casos? Existe algum sentido para usar chaves de negócios? Parece-me que é muito difícil fazer tudo certo para funcionar em todas as situações, quando a busca preguiçosa, […]

Endereço de memory de variables ​​em Java

Por favor, olhe a figura abaixo. Quando criamos um object em java com uma nova palavra-chave, estamos recebendo um endereço de memory do sistema operacional. Quando escrevemos out.println(objName) podemos ver uma string “especial” como saída. Minhas perguntas são: O que é essa saída? Se é endereço de memory que dado pelo sistema operacional para nós: […]

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