Foros del Web » Programación para mayores de 30 ;) » Java »

Método hashcode()

Estas en el tema de Método hashcode() en el foro de Java en Foros del Web. Recientemente me he puesto a practicar las estructuras de datos desde cero (haciendo todo a pie) y me puse a hacer la implementación de una ...
  #1 (permalink)  
Antiguo 24/06/2011, 22:03
 
Fecha de Ingreso: junio-2011
Mensajes: 9
Antigüedad: 12 años, 11 meses
Puntos: 0
Método hashcode()

Recientemente me he puesto a practicar las estructuras de datos desde cero (haciendo todo a pie) y me puse a hacer la implementación de una tabla de hash.

Para la función de dispersión Java cuenta con el método hashcode(), ahora lo que quiero es programar la función que implementa java (inventar el agua azucarada).

Sé que la función para un string es:

Código:
public int hashcode(String cadena){
        int hash=0;
        int n=cadena.length();

        for (int x=0;x<n;x++){
		hash = (int) (hash + cadena.charAt(x)*Math.pow(31.0, n-(x+1)));
        }

        return hash
}
Pero lo que me gustaría hacer es el método para un objeto en general, por ejemplo una instacia de una clase que yo haya creado y no solo para un string.

  #2 (permalink)  
Antiguo 25/06/2011, 00:02
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Método hashcode()

Hola.

Eclipse genera automáticamente el hashcode de cualquier clase tuya si se lo pides (hay un implementar equals y hashcode). Al hacerlo te pregunta cuales de los atributos debe tener en cuenta. Quizás viendo ese código generado por eclipse y haciendo pruebas con varias clases puedas deducirlo.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 01/07/2011, 16:50
 
Fecha de Ingreso: julio-2011
Mensajes: 1
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Método hashcode()

guerrillerogt, yo tambien necesito implementar una tabla hash desde cero para un proyecto de estructuras de datos! y quisiera saber si me puedes ayudar con eso gracias!!!

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:32.