Si hablamos de la implementación de listas en java, podemos referirnos a diferentes instancias como un Arraylist, linkedList, Vector o Stack. Cada uno de estos con sus propiedades puede resultar más útil para cada caso. Enfoquémonos en el primero: ArrayList Crea una lista vacía con una capacidad inicial de 10 (va creciendo conforme se almacenan elementos). Recordando cómo funcionan los arreglos estáticos (int array [n]) podemos eliminar el valor de una posición, pero no podemos eliminar la posición en si. Es decir, si tenemos un arreglo de tamaño 10 y solo ocupamos 4 espacios, los otros 6, aunque vacios, siguen ahí. y si queremos eliminar una posición y recorrer los datos, ahí se presenta un problema. Pues bien, ArrayList es una lista implementada con arreglos dinámicos, así que cuando eliminamos un elemento (que no sea el último) lo que en realidad se hace es tomar la posición del elemento a eliminar y recorrer los elementos posteriores a este. Y si rebasamos la capacidad actu...