Hola
CalgaryCorpus, lo de las pruebas hice distintas en varios archivos cómo me dijiste además de deshacerme de firstIndex, pero en el dilema de que no me doy cuenta cómo mejorar los recorridos, sinceramente:
Código Java:
Ver originalprivate abstract class HashIterator<E> implements Iterator<E> {
private int index = 0;
private Entry<K,V> currEntry = null;
private Entry<K,V> nextEntry = null;
/**
* Construye una nueva iteración hash
*/
@SuppressWarnings("empty-statement")
HashIterator() {
index = 0;
for(; index< size; index++){
if(table[index]!= null){
nextEntry = table[index];
break;
}
}
}
/**
* Verifica si hay una siguiente entrada
*
* @return boolean -> verdadero o falso
*/
@Override
public boolean hasNext() {
return nextEntry != null;
}
/**
* Obtiene la entrada próxima, y también es una función
* sobreexplotada para los recorridos ;)
*
* @return Entry<K,V> -> entrada clave/valor
*/
@SuppressWarnings("empty-statement")
public Entry<K,V> nextEntry() {
currEntry = nextEntry;
nextEntry = table[index];
index++;
if (index <= size && table[index] != null) {
nextEntry = table[index];
} else {
nextEntry = null;
for (;index < size; index++){
if (table[index] != null){
nextEntry = table[index];
}
}
}
return currEntry;
}
}
Espero sus respuestas y saludos.