Hola a todos, finalmente pude con el problema de las colisiones, era de esto:
Código Java:
Ver original@Override
public V put(K key, V value) {
if(key != null){
int hash = hash(key,table.length);
for(Entry<K,V> e = table[hash]; e != null; e = e.next){
if(e.getKey().equals(key)){
V oldValue = e.getValue();
e.setValue(value);
return oldValue;
}
}
this.addEntry(key, value);
return value;
} else {
return null;
}
}
a esto, tuve que agregar otro if para lo de las colisiones:
Código Java:
Ver original@Override
public V put(K key, V value) {
if(key != null){
int hash = hash(key,table.length);
for(Entry<K,V> e = table[hash]; e != null; e = e.next){
if(e.getKey().equals(key)){
V oldValue = e.getValue();
e.setValue(value);
return oldValue;
} else if(e.next == null){
e.next = new Entry(key,value);
size++;
return value;
}
}
this.addEntry(key, value);
return value;
} else {
return null;
}
}
Ahora bien, seguiré haciendo pruebas a parte de las subidas en github, por lo que pido nuevamente que si ven que hay que mejorar del código y de los test que me lo escriban, así podré darle al clavo.
https://github.com/detectivejd/HashS.../hashsetsimple https://github.com/detectivejd/HassM.../hashmapsimple
Espero sus respuestas y saludos.