Alguem pode me dizer qual é a finalidade deste método?
Quando usar?
Como usar?
Se puderem mandar um exemplo ficarei muito grato…
Desde já agradeço
Alguem pode me dizer qual é a finalidade deste método?
Quando usar?
Como usar?
Se puderem mandar um exemplo ficarei muito grato…
Desde já agradeço
Olá!
Dê uma olhada no link a seguir:
http://blog.caelum.com.br/2006/09/04/ensinando-que-e-o-hashcode/
Uma pesquisa rápida no Google também traz bastantes resultados interessantes.
Abraços.
também gostaria de saber como utiliza-lo. Lendo o artigo não ficou claro como por em pratica.
Bem, o uso principal de hashcodes é para ser usado com hashsets e outras estruturas que dependem de hashes.
Digamos que tenho 4 Strings, “Aline”, “Bruno”, “Camila” e “Danilo”
O hashcode de Aline é 1, de Bruno e Camila é 2, e de Danilo é 3.
Na hora de inserir algo num hashset, o algoritmo primeiro insere em lugares que chamamos de buckets, literalmente baldes. No balde um colocamos objetos com o hashcode 1, no dois colocamos com hashcode 2 e assim vai.
Digamos que quero encontrar a String “Camila” no hashset.
Primeiro ele vai percorrer o set até encontrar o balde dela, depois dentro do balde dela, que contém 2 objetos, ele vai procurar por ela mesma (usando equals ou contains).
Bem, a finalidade de separar em vários baldes é justamente para acelerar a pesquisa, ao invés de procurarmos uma String entre milhares, procuramos primeiro o balde, dentre dezenas deles, e depois o objeto dentro do balde, dentre dezenas de objetos. Muito mais rápido.
alguem tem um exemplo de implementação deste método?
pelo jeito esse conceito é muito importante, se alguém puder contribuir com um exemplo ficarei muito grato
O livro “Effective Java” fala sobre esses métodos da classe Object que podem ser sobrescritos: equals(), hashCode(), toString(), etc. *
Um resumo muito bom pode ser visto aqui:
http://br.geocities.com/vanessasabino/java/ej2.html
Também tem uma maneira prática bem legal que o ViniGodoy divulgou aqui no GUJ, mas infelizmente eu não lembro qual o tópico, tente dar uma pesquisada…
PS: Ainda não li esse livro, só estou fazendo média :roll:
Olá.
Quanto mais diferentes forem os valores gerados pelo hashCode para cada objeto instanciado de uma dada classe, mais rápida será a busca do objeto quando você tentar recuperar algum valor.
Um exemplo seria
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((databaseType == null) ? 0 : databaseType.hashCode());
result = prime * result + ((fieldName == null) ? 0 : fieldName.hashCode());
return result;
}
Onde databaseType e fieldName são Strings.
alguem tem um exemplo de implementação deste método?pelo jeito esse conceito é muito importante, se alguém puder contribuir com um exemplo ficarei muito grato
IDEs recentes já vem com um gerador de equals e hashcode.