Hola FuzzyLog gracias por responder, verás para que me muestre como lo hace ahora sí pero para cómo debería andar no.
En el put de MyMap.java sufrió algunos cambios como este:
Código Java:
Ver originalpublic 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);
e.recordAccess(this);
return oldValue;
} else {
return e.chain(key, value);
}
}
this.addEntry(key, value);
return value;
} else {
return null;
}
}
En la clase interna Entry de MyMap.java puse la función chain quedando de esta forma:
Código Java:
Ver originalV chain(K key, V value){
this.next = new Entry(key,value);
size++;
return value;
}
Cosa que en Entry de MyLinkedMap.java lo pueda redefinir de esta forma:
Código Java:
Ver original@Override
this.next = new Entry(key,value);
((MyLinkedMap.Entry)this.next).addBefore(head);
size++;
return value;
}
pero en el método main no lista los datos por órden de inserción:
Código Java:
Ver originalpublic static void main
(String[] args
) { MySet<String>set = new MyLinkedSet();
set.add("Deborah");
set.add("Tommy");
set.add("Franco");
set.add("Manuela");
set.add("Miguel");
set.add("Denisse");
System.
out.
println("\t\tORDEN NORMAL"); set.stream().forEach((s) -> {
});
MyLinkedSet<String>set2 = new MyLinkedSet();
set2.add("Franco");
set2.add("Miguel"); // -> aqui tengo los problemas
set2.add("Manuela");
set2.add("Tommy");
set2.add("Deborah");
set2.add("Denisse");
System.
out.
println("\t\tORDEN NINGUNO"); set2.stream().forEach((s) -> {
});
}
Pero tengo problemas con las colisiones, sé que me falta algo para que me ande bien el MyLinkedMap y MyLinkedSet, el código lo puse en github y no sé me ocurre nada para arreglarlo, si ven algo avisen por favor.
https://github.com/detectivejd/Linke...kedsetsimplev1
Espero sus respuestas y saludos.