Tabla hash Andrea Bedia Suarez Grupo G
¿Podemos utilizar Object para los elementos de la tabla Hash? No. Para insertar/buscar en una tabla Hash es necesaria la clave del elemento a insertar (código de la mercancía), puesto que se ha de buscar la posición en la que se llevará a cabo la inserción/búsqueda.  Clave%tamaño_Tabla=celda. Sí usamos Objetc para los elementos de la tabla no se podrá obtener el código de cada una de las mercancías.
¿Podemos utilizar Object para los elementos de la tabla Hash? Solución:  Crear una Interfaz que contenga el siguiente método:  String getClave() Hacer que la Clase Mercancía  implements  de esta Interfaz. E implementar en la clase Mercancía este método para que devuelve el código de cada mercancía. Éste será la clave para la inserción/búsqueda en la tabla.
Función matemática:  Transformar clave en un índice numérico para el array. Función de Dispersión Recibe como parámetro la clave del objeto que se quiere insertar/buscar/borrar, y devuelve un número entero (0...longitud_Tabla - 1), será la celda de la tabla. Protección activa, evitar colisiones antes de que se produzcan. Buen diseño función dispersión. Transformación de la clave en un índice numérico se usa la regla de Horner. Conversión=32*(K1*32+K2)+K3
Cómo implemento esto en mi tabla hash. Ejemplo para una tabla con tamaño 5: Inserción de Ana: (‘A’*32+’n’)*32+’a’=(65*32+110)*32+97=70177 Posición: 70177 % 5=2 Se insertará en la posición 2 de la tabla Hash, si ésta no esta ocupada.
Cómo implemento esto en mi tabla hash. Implementación: private int  funcionDispersion (String clave){ int pos=0; int B=tabla.length; for(int i=0;i<clave.length();i++){ //32 es el peso que tiene asignado cada elemento pos=(pos*32+clave.charAt(i))%B; } return pos; }

Tabla Hash ( Andrea Bedia Suarez )

  • 1.
    Tabla hash AndreaBedia Suarez Grupo G
  • 2.
    ¿Podemos utilizar Objectpara los elementos de la tabla Hash? No. Para insertar/buscar en una tabla Hash es necesaria la clave del elemento a insertar (código de la mercancía), puesto que se ha de buscar la posición en la que se llevará a cabo la inserción/búsqueda. Clave%tamaño_Tabla=celda. Sí usamos Objetc para los elementos de la tabla no se podrá obtener el código de cada una de las mercancías.
  • 3.
    ¿Podemos utilizar Objectpara los elementos de la tabla Hash? Solución: Crear una Interfaz que contenga el siguiente método: String getClave() Hacer que la Clase Mercancía implements de esta Interfaz. E implementar en la clase Mercancía este método para que devuelve el código de cada mercancía. Éste será la clave para la inserción/búsqueda en la tabla.
  • 4.
    Función matemática: Transformar clave en un índice numérico para el array. Función de Dispersión Recibe como parámetro la clave del objeto que se quiere insertar/buscar/borrar, y devuelve un número entero (0...longitud_Tabla - 1), será la celda de la tabla. Protección activa, evitar colisiones antes de que se produzcan. Buen diseño función dispersión. Transformación de la clave en un índice numérico se usa la regla de Horner. Conversión=32*(K1*32+K2)+K3
  • 5.
    Cómo implemento estoen mi tabla hash. Ejemplo para una tabla con tamaño 5: Inserción de Ana: (‘A’*32+’n’)*32+’a’=(65*32+110)*32+97=70177 Posición: 70177 % 5=2 Se insertará en la posición 2 de la tabla Hash, si ésta no esta ocupada.
  • 6.
    Cómo implemento estoen mi tabla hash. Implementación: private int funcionDispersion (String clave){ int pos=0; int B=tabla.length; for(int i=0;i<clave.length();i++){ //32 es el peso que tiene asignado cada elemento pos=(pos*32+clave.charAt(i))%B; } return pos; }