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)

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();

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());
    }
}
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.