Eliminar todos los elementos de una lista después de un índice en particular

82

¿Existe alguna forma conveniente en List / ArrayList mediante la cual podamos eliminar todos los elementos de una Lista después de un índice en particular? En lugar de recorrerlo manualmente para eliminarlo.

Para ser más explicativo, si tengo una lista de 10 elementos, quiero mencionar el índice 3 y luego todos los elementos después de que se elimine el índice 3 y mi lista consistiría en solo comenzar 4 elementos ahora (cuenta desde 0)

Abhi
fuente

Respuestas:

145
list.subList(4, list.size()).clear();

Las operaciones de sublista se reflejan en la lista original , por lo que esto borra todo, desde el índice 4 inclusive hasta el list.size()exclusivo, también conocido como todo lo que está después del índice 3. La eliminación de rango se usa específicamente como ejemplo en la documentación:

Este método elimina la necesidad de operaciones de rango explícitas (del tipo que existe comúnmente para matrices). Cualquier operación que espere una lista se puede usar como una operación de rango pasando una vista subLista en lugar de una lista completa. Por ejemplo, el siguiente modismo elimina un rango de elementos de una lista:

     list.subList(from, to).clear();
user2357112 es compatible con Monica
fuente
13

Usando sublist () y clear (),

public class Count
{
    public static void main(String[] args)
    {
        ArrayList<String> arrayList = new ArrayList<String>();
        arrayList.add("1");
        arrayList.add("2");
        arrayList.add("3");
        arrayList.add("4");
        arrayList.add("5");
        arrayList.subList(2, arrayList.size()).clear();
        System.out.println(arrayList.size());
    }
}
AJJ
fuente