Ver Mensaje Individual
  #19 (permalink)  
Antiguo 27/04/2017, 22:35
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: Implementar TablaHash

Hey CalgaryCorpus gracias por responder, verás pude resolver mi problema, la función put me quedó de esta forma:

Código Java:
Ver original
  1. @Override
  2.     public V put(K key, V value) {
  3.         if(key == null){
  4.             return null;
  5.         } else {            
  6.             if(size == table.length){
  7.                 table = Arrays.copyOf(table, table.length +1);
  8.             }
  9.             int index = indexPut();
  10.             if (table[index] != null && table[index].getKey().equals(key)) {
  11.                 V oldValue = table[index].getValue();
  12.                 table[index].setValue(value);
  13.                 return oldValue;
  14.             }            
  15.             table[index] = new Entry(key, value);
  16.             size++;
  17.             return value;
  18.         }
  19.     }

Luego tuve otro problemilla más pero lo resolví que era el de las iteraciones:

Código Java:
Ver original
  1. @SuppressWarnings("empty-statement")
  2.         public Entry<K,V> nextEntry() {
  3.             currEntry = nextEntry;                            
  4.             index++;
  5.             // tuve que hacer este if para que no me diera error por el tema de los índices
  6.             if (index != size && table[index] != null) {
  7.                 nextEntry = table[index];              
  8.             } else {
  9.                 nextEntry = null;
  10.                 for (;index < table.length; index++){
  11.                     if (table[index] != null){
  12.                         nextEntry = table[index];
  13.                     }
  14.                 }
  15.             }
  16.             return currEntry;
  17.         }      
  18.     }

Quería saber tu opinión porque en así están rebuscados tanto el put como el de las iteraciones.
Y de paso preguntarte: ¿si publico mi código completo con comentarios lo mirarías? es que quiero tener una opinión objetiva de la estructura y también pondría tu nombre cómo autor del código además del mío jeje....

Espero sus respuestas y Saludos.

PD1: Porque luego de esto quiero ver si con este código puedo hacer bien HashSet (de la misma forma que Oracle, xq ellos trabajan internamente con el HashMap para las funciones y los métodos de HashSet).

PD2: Estaba trasnochado cuando escribí el mensaje anterior.