? Componentes de código de aplicações Java modelo como objetos , com cada objeto de ter uma área de responsabilidade. Objetos fornecer métodos para levar a cabo as suas responsabilidades. Alguns métodos em Java são implementadas por todos os objetos possíveis, incluindo cordas. O framework Java permite aos desenvolvedores usar certos tipos de estrutura de armazenamento de dados , alguns dos quais usam valores de hash de código para armazenar itens . Um valor de hash do código usa um código para se referir a um objeto específico , permitindo que a classe de coleção para implementar métodos eficientes para armazenar vários objetos dentro do programa. Código Java pode calcular os valores de hash de código para todos os objetos , incluindo cordas , que são imutáveis. Cordas conteúdo
variáveis String em programas em Java são objetos da classe String, armazenar seqüências de caracteres de texto. Isso pode ser confuso , porque os programas de criar variáveis de string usando o mesmo tipo de estrutura utilizada para as variáveis de tipo primitivo , como números . O seguinte código de exemplo demonstra a criação de uma variável string: String nome = "João" ;
O programa pode realizar métodos da classe String sobre esta variável , alguns dos quais envolvem alterar o conteúdo do texto. Métodos que alteram o conteúdo de uma string normalmente retornar uma nova string, em vez de alterar a cadeia existente . Isto porque strings são imutáveis , o que significa que uma vez uma variável de seqüência é criado, seu conteúdo não pode ser alterado. Programas em que o conteúdo de uma string parece ser alterados estão realmente criando novas cordas para substituir os já existentes.
HashCode Função
Todos os objetos em Java fornecer o " função hashCode " . Isso ocorre porque todas as classes Java herdam o objeto de superclasse , que fornece o método " hashCode " . O código a seguir exemplo demonstra chamando o método na variável String : name.hashCode ();
Chamar esse método faz com que Java para gerar um valor de hash - código para a variável de cadeia especificada. A criação de um valor de hash - código para um objeto string envolve o mesmo processo que você usaria para qualquer objeto .
Resultado
O método " hashCode " resulta em um valor inteiro que representa o objeto em questão . Este número permite que classes Java para otimizar a eficiência ao armazenar valores de dados , particularmente em conjunto com a classe HashMap ou outras classes de coleções relacionadas. Na maioria dos casos , um programador Java não precisa se preocupar com os detalhes dos números usados como hash- códigos para itens, tais como cordas, como as classes de coleções lidar com esse detalhe .
Igualdade
o resultado de chamar o " hashCode " em dois itens que são iguais deve ser o mesmo número. Por exemplo , as duas variáveis de cadeia a seguir devem gerar o mesmo valor hash -code : String AlgumNome = "João" ; Cordas otherName = "João" ;
Se dois objetos retornar um resultado verdadeiro quando usado dentro do método é igual , então Java considera que eles sejam iguais, caso em que deve resultar no mesmo hash - código. Por exemplo , o seguinte código resultaria em um valor verdadeiro : boolean AreEqual = someName.equals ( otherName );
É tipicamente o caso de que, se duas seqüências são iguais , eles vão gerar diferentes valores de hash de código , mas isto não é garantido . (Veja Referências 1, 2 , 3)