Usuń wszystkie elementy z listy po określonym indeksie

83

Czy w List / ArrayList jest jakiś wygodny sposób, dzięki któremu możemy usunąć wszystkie elementy listy po określonym indeksie. Zamiast ręcznie przeglądać go w celu usunięcia.

Aby być bardziej zrozumiałym, jeśli mam listę 10 elementów, chcę wspomnieć o indeksie 3, a następnie wszystkie elementy po indeksie 3 zostaną usunięte, a moja lista składałaby się teraz tylko z 4 początkowych elementów (liczy od 0)

Abhi
źródło

Odpowiedzi:

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

Operacje na podlistach są odzwierciedlone na pierwotnej liście , więc usuwa to wszystko, od indeksu 4 włącznie do list.size()wyłączności, czyli wszystko po indeksie 3. Usunięcie zakresu jest szczególnie używane jako przykład w dokumentacji:

Ta metoda eliminuje potrzebę jawnych operacji na zakresach (takich, jakie zwykle istnieją dla tablic). Każda operacja, która oczekuje listy, może być użyta jako operacja zakresu, przekazując widok subList zamiast całej listy. Na przykład następujący idiom usuwa zakres elementów z listy:

     list.subList(from, to).clear();
user2357112 obsługuje Monikę
źródło
13

Używając sublist () i 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
źródło