Hola
CalgaryCorpus cambié un poquito el código para simplificarlo:
Código Java:
Ver original@Override
public V put(K key, V value) {
if(key == null){
return null;
} else {
int index = getIndex(key);
System.
out.
println("indice -> "+ index
); Entry<K, V> pair = table[index];
if (pair != null && pair.getKey().equals(key)) {
V oldValue = pair.getValue();
pair.setValue(value);
return oldValue;
}
if(size == table.length){
table
= Arrays.
copyOf(table, table.
length +1); }
table[index] = new Entry(key, value);
size++;
return value;
}
}
private int getIndex
(Object key
) { return (key.hashCode() & 0x7FFFFFFF) % table.length;
}
Estuve pensando en lo que me dijiste pero no le doy al clavo, te pongo la parte donde inicia, y todo xq no me encuentra el índice para posicionarlo en el array:
Código Java:
Ver originalprivate int capacity;
private int size;
private static final int DEFAULT_SIZE = 4;
private Entry<K,V>[] table;
public MyMap() {
this(DEFAULT_SIZE);
}
public MyMap(int xcapacity) {
if(xcapacity <= 0){
} else {
this.capacity = xcapacity;
}
this.clear();
}
public MyMap(Map<? extends K, ? extends V> m) {
this.putAll(m);
}
@Override
public void clear() {
table = new Entry[capacity];
size = 0;
}
¿Cómo lo implementarías? ya que me queda sólo esto para terminar con la estructura.
Espero sus respuestas y Saludos.