import java.util.HashSet; import java.util.HashMap; import java.util.Map; import java.util.Set;
public boolean contiene(T elemento) return indiceDe(elemento) != -1;
Dedica capítulos exclusivos al análisis de algoritmos para medir su eficiencia y coste en términos de tiempo y memoria.
Antes de construir estructuras, Joyanes siempre insistía en entender la "caja negra" de la memoria. En Java, distinguimos entre:
Arrays (vectores y tablas), cadenas y recursividad.
public void limpiar() for (int i = 0; i < tamaño; i++) elementos[i] = null;
Las tablas hash asocian claves con valores. Utilizan una para transformar una clave en un índice de un array, lo que permite realizar inserciones, eliminaciones y búsquedas en un tiempo promedio teórico de Resolución de Colisiones
sb.append(elementos[tamaño - 1]).append("]"); return sb.toString();
This is a major step up from arrays. Joyanes dedicates significant chapters here.