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

Bueno, llegué al LinkedHashSet o bien MyLinkedSet, pero tengo el problema en las colisiones (en MyMap esta el lio de nuevo :( ) y el problema que tengo es que cuando llego ahí no puedo listar los siguientes datos:

Código Java:
Ver original
  1. @Override
  2.     public V put(K key, V value) {
  3.         if(key != null){
  4.             int hash = hash(key,table.length);
  5.             for(Entry<K,V> e = table[hash]; e != null; e = e.next){
  6.                 if(e.getKey().equals(key)){
  7.                     V oldValue = e.getValue();
  8.                     e.setValue(value);
  9.                     e.recordAccess(this);
  10.                     return oldValue;
  11.                 } else if(e.next == null){ // este else if es el que me complica
  12.                     e.next = new Entry(key,value);
  13.                     e.recordAccess(this); // -> ¿pero cómo resuelvo esto?
  14.                     size++;
  15.                     return value;
  16.                 }                
  17.             }
  18.             this.addEntry(key, value);
  19.             return value;                    
  20.         } else {
  21.             return null;
  22.         }
  23.     }

y otra vez la clave está en MyMap y MyLinkedMap que ya los puse en el código, digo esto xq Mi Set Enlazado tiene esto de código:

Código Java:
Ver original
  1. package linkedsetsimplev1;
  2. import java.util.Collection;
  3. public class MyLinkedSet<E> extends MySet<E>
  4. {
  5.     public MyLinkedSet() {
  6.         super(4,true);
  7.     }
  8.     public MyLinkedSet(int xcap) {
  9.         super(xcap,true);
  10.     }
  11.     public MyLinkedSet(Collection<? extends E> c) {
  12.         super(c.size(),true);
  13.         addAll(c);
  14.     }
  15. }

Porque lo único nuevo q tiene MySet es este constructor que MyLinkedSet usa:

Código Java:
Ver original
  1. MySet(int xcap, boolean dummy) {
  2.         map = new MyLinkedMap(xcap);
  3.     }

Y les pregunto que ideas me dan para arreglar esto????

Espero sus respuestas y Saludos.