Ver Mensaje Individual
  #15 (permalink)  
Antiguo 27/07/2017, 18:00
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, cómo están? espero que bien. En vista que no tuve ninguna respuesta o critica del código, comencé a desarrollar el código de LinkedHashMap casero, pero no estoy muy inspirado que digamos, no sé si estoy bien encaminado o no en el asunto.

Pongo el código:

Código Java:
Ver original
  1. package linkedmapsimple;
  2. import java.util.Map;
  3. public class MyLinkedMap<K,V> extends MyMap<K,V>
  4. {
  5.     private Entry<K,V>header;
  6.     private boolean accessOrder;
  7.     public MyLinkedMap() {
  8.         super();
  9.         accessOrder = false;
  10.     }
  11.  
  12.     public MyLinkedMap(int xcap) {
  13.         super(xcap);
  14.         accessOrder = false;
  15.     }
  16.  
  17.     public MyLinkedMap(Map<? extends K, ? extends V> m) {
  18.         super(m);
  19.         accessOrder = false;
  20.     }
  21.    
  22.     @Override
  23.     public void clear() {
  24.         super.clear();
  25.         header.before = header.after = header;
  26.     }
  27.     @Override
  28.     public boolean containsValue(Object value) {
  29.         // Overridden to take advantage of faster iterator        
  30.         if (value==null) {
  31.             for (Entry e = header.after; e != header; e = e.after)
  32.                 if (e.value==null)
  33.                     return true;
  34.         } else {
  35.             for (Entry e = header.after; e != header; e = e.after)
  36.                 if (value.equals(e.value))
  37.                     return true;
  38.         }
  39.         return false;
  40.     }
  41.     private void addEntry(K key, V value){
  42.        
  43.     }
  44.     class Entry<K,V> extends MyMap.Entry {
  45.         Entry<K,V> before;
  46.         Entry<K,V> after;
  47.         public Entry(K xkey, V xvalue) {
  48.             super(xkey, xvalue);
  49.         }
  50.         private void remove() {
  51.             before.after = after;
  52.             after.before = before;
  53.         }
  54.         private void addBefore(Entry<K,V> existingEntry) {
  55.             after  = existingEntry;
  56.             before = existingEntry.before;
  57.             before.after = this;
  58.             after.before = this;
  59.         }
  60.     }
  61. }

En especial con el addEntry teniendo en cuenta mi código del HashMap.

Código del HashMap Casero

Espero sus respuestas y Saludos.

PD: Para aclarar, no estoy en plan de "háganme el código" porque esa no es la idea para nada.