“Conocimientos Programación>Programación Java

¿Por qué una cadena inmutable calcular su hash Valor

2014/4/25
¿ Java aplicaciones modelo de componentes de código como objetos , cada objeto que tiene un área de responsabilidad . Los objetos proporcionan métodos para llevar a cabo sus responsabilidades. Algunos métodos en Java son implementadas por todos los objetos posibles, incluyendo cadenas. El marco de Java permite a los desarrolladores utilizar ciertos tipos de estructura de almacenamiento de datos, algunos de los cuales utilizan los valores de código hash para almacenar artículos . Un valor de código hash utiliza un código para hacer referencia a un objeto específico , lo que permite la clase de colección para poner en práctica los métodos eficientes para el almacenamiento de varios objetos dentro del programa . Código Java puede calcular los valores de código hash para todos los objetos , incluyendo cadenas , que son inmutables. Cadena de contenido

variables de cadena en los programas Java son objetos de la clase String , almacenar secuencias de caracteres de texto. Esto puede ser confuso , ya que los programas crean variables de cadena utilizando el mismo tipo de estructura que se utiliza para las variables de tipo primitivo , como números . El siguiente código de ejemplo muestra cómo crear una variable de cadena : String nombre = "Juan" ;

El programa se puede llevar a cabo los métodos de la clase String en esta variable, algunos de los cuales implican alterar el contenido del texto. Los métodos que alteran el contenido de una cadena normalmente devuelven una nueva cadena , en lugar de la alteración de la cadena existente . Esto se debe a que las cadenas son inmutables , lo que significa que una vez que se crea una variable de cadena , su contenido no puede ser alterado. Programas en los que el contenido de una cadena parece estar alterado en realidad está creando nuevas cadenas para sustituir las existentes.
HashCode Función

todos los objetos de Java ofrecen la " función hashCode " . Esto es porque todas las clases de Java heredan de la superclase del objeto , lo que proporciona el método " hashCode " . El siguiente código de ejemplo muestra una llamada al método en la variable String : name.hashCode ();

llamar a este método Java para generar un valor de código hash para la variable de cadena especificado. La creación de un valor de código hash para un objeto de cadena implica el mismo proceso que se uso para cualquier objeto.
Resultado

El método " hashCode " da lugar a un valor entero que representa el objeto en cuestión . Este número permite que las clases de Java para optimizar la eficiencia al almacenar valores de datos , en particular en conjunción con la clase HashMap o colecciones de otras clases relacionadas . En la mayoría de los casos , un programador de Java no tiene que preocuparse por los detalles de los números utilizados como hachís -códigos para artículos tales como cadenas , como las clases de colecciones manejar este detalle.
Igualdad

el resultado de llamar a la " hashCode " en dos elementos que son iguales debe ser el mismo número . Por ejemplo , las dos variables de cadena debe generar el mismo valor de código hash : String someName = "Juan" ; Cadena otherName = "Juan" ;

Si dos objetos devuelven un resultado verdadero cuando se utiliza dentro de la método equals , a continuación, Java considera que son iguales, en cuyo caso se deberían dar lugar a la misma - código hash . Por ejemplo , el siguiente código daría como resultado un valor verdadero : boolean AreEqual = someName.equals ( otherName ) ;

Es el caso típico de que si dos cadenas no son iguales , se generan diferentes valores de código hash de , pero esto no está garantizado . (Ver Referencias 1 , 2, 3 )

Programación Java
WPS y JVM Heap Tallas
Cómo crear un archivo JAR para su distribución en Eclipse
Cómo conseguir Java para imprimir asteriscos consecutivos
Diferencia entre las excepciones , facturado o no en Java
Cómo cambiar el texto en el diario JSP
Cómo conseguir un JApplet En JPanel
Tipos de controles de validación
Cómo recuperar MP3 inmuebles como Álbum Tamaño del artista en Java
Conocimientos Informáticos © http://www.ordenador.online