Donate Share

KodeGeek

File Release Notes and Changelog

Release Name: Ticker.java

Notes:
Suponga que tiene el siguiente problema: A usted le dan una lista de simbolos de la bolsa: SUNW, IBM, RHAT y le piden que los almacene internamente como una clave; Idealmente deberíamos generar un identificador único por cada palabra.

Bueno, en Java podemos llamar al método de la clase String llamado 'hashcode'; Un hash no es más que una función de transformación que nos permite convertir una cosa en otra, usando un algoritmo conocido. En este caso logramos mapear nuestra cadena a un número único. Los Hashes no son perfectos, ya que pueden generar lo que se llaman colisiones (dos entradas producen el mismo hash) y es allí en donde entran varios algoritmos para manejar esos casos.

Aquí les dejo un código que utiliza la implementación interna de Java de 'hashcode' y otro algoritmo el cual se aprovecha de la conversión de cada caracter en el objeto String a un char, para luego darle un peso dada su posición en la cadena (con lo cual obtenemos un número único).


Changes: