Ver Mensaje Individual
  #31 (permalink)  
Antiguo 05/12/2017, 22:59
Avatar de detective_jd
detective_jd
 
Fecha de Ingreso: abril-2011
Ubicación: Salto
Mensajes: 437
Antigüedad: 13 años
Puntos: 6
Respuesta: TablaHash y sus pasos

CalgaryCorpus no sé si me aplaudirás o querrás golpearme pero hice esto en consola y verás cual es el error:

antes: null
después del anterior: Denisse
después: null
antes del posterior: Denisse

antes: Denisse
después del anterior: Franco
después: null
antes del posterior: Franco

antes: Franco
después del anterior: Manuela
después: null
antes del posterior: Manuela

antes: Manuela
después del anterior: Deborah
después: null
antes del posterior: Deborah

antes: Deborah
después del anterior: Miguel
después: null
antes del posterior: Miguel

--- se agrandó la estructura por 8 ---

antes: null
después del anterior: Denisse
después: null
antes del posterior: Denisse

antes: Denisse
después del anterior: Franco
después: null
antes del posterior: Franco

antes: Franco
después del anterior: Miguel
después: null
antes del posterior: Miguel

antes: Miguel
después del anterior: Manuela
después: null
antes del posterior: Manuela

antes: Manuela
después del anterior: Deborah
después: null
antes del posterior: Deborah

antes: Deborah
después del anterior: Tommy
después: null
antes del posterior: Tommy

Denisse
Franco
Miguel
Manuela
Deborah
Tommy

Cuando se agranda el array interno de la estructura pierde el órden que tenía anteriormente, ahora la pregunta ¿cómo arreglar ese detalle? ¿debo empezar por la función hash o por dónde?

Este código con los mensajes no se verá en el repositorio pero lo estoy usando para verificar el error, en el repositorio de la estructura MyLinkedMap.java aparece el addBefore pero sin los mensajes.

Código Java:
Ver original
  1. void addBefore(Entry<K,V> existingEntry) {
  2.             before = (Entry<K, V>) head.before;
  3.             after  = (Entry<K, V>) head;
  4.             before.after = this;
  5.             after.before = this;
  6.             System.out.println("antes: " + before.key);
  7.             System.out.println("después del anterior: " + before.after.key);
  8.             System.out.println("después: " + after.key);
  9.             System.out.println("antes del posterior: " + after.before.key);
  10.             System.out.println("");
  11.         }


No sé si tú o alguien más me dará alguna idea.

Espero sus respuestas y saludos.