Ver Mensaje Individual
  #17 (permalink)  
Antiguo 24/10/2017, 22:58
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

Hola a todos, empecé a hacer el LinkedHashSet casero, y esta hecho:

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. }

A lo que tuve que hacer mejoras en MySet, MyMap y MyLinkedMap, pero estoy teniendo problemas con el iterator para que muestre el siguiente ya que tengo en las entradas, el que está antes y después pero también tengo el sgte:

Código Java:
Ver original
  1. public MyLinkedMap.Entry<K, V> nextNode() {
  2.             MyLinkedMap.Entry<K, V> e = next;            
  3.             current = e;
  4.             next = e.after;
  5.             return e;
  6. }
  7.  
  8. static class Entry<K,V> extends MyMap.Entry {
  9.         Entry<K,V> before = null;
  10.         Entry<K,V> after = null;
  11.         public Entry(K xkey, V xvalue) {
  12.             super(xkey, xvalue);
  13.         }
  14.     }

En la consola me muestra esto:

run:
ORDEN NORMAL
Deborah
Tommy
Franco

ORDEN NINGUNO
Franco
Manuela
Tommy
Deborah
Denisse

esta es una prueba aparte que no la pondré en github pero en listado normal a partir de la 3era entrada no me muestra las otras por esto de las colisiones.

Esta es la prueba:

Código Java:
Ver original
  1. package linkedsetsimplev1;
  2. public class Cuerpo
  3. {
  4.     public static void main(String[] args) {
  5.         MySet<String>set = new MyLinkedSet();
  6.         set.add("Deborah");
  7.         set.add("Tommy");
  8.         set.add("Franco");
  9.         set.add("Manuela");
  10.         set.add("Miguel");
  11.         set.add("Denisse");
  12.         System.out.println("\t\tORDEN NORMAL");
  13.         set.stream().forEach((s) -> {
  14.             System.out.println(s);
  15.         });
  16.         System.out.println("");
  17.         MyLinkedSet<String>set2 = new MyLinkedSet();
  18.         set2.add("Franco");
  19.         set2.add("Miguel");
  20.         set2.add("Manuela");
  21.         set2.add("Tommy");        
  22.         set2.add("Deborah");
  23.         set2.add("Denisse");
  24.         System.out.println("\t\tORDEN NINGUNO");        
  25.         set2.stream().forEach((s) -> {
  26.             System.out.println(s);
  27.         });
  28.     }    
  29. }

Y no sé me ocurre nada para arreglarlo, espero sus respuestas y saludos.