Entfernen Sie alle Elemente aus einer Liste nach einem bestimmten Index


80

Gibt es in List / ArrayList eine bequeme Möglichkeit, alle Elemente einer Liste nach einem bestimmten Index zu entfernen? Anstatt es zum Entfernen manuell zu durchlaufen.

Um es genauer zu erklären, wenn ich eine Liste mit 10 Elementen habe, möchte ich Index 3 erwähnen und dann alle Elemente nach Index 3 entfernen und meine Liste würde jetzt nur aus 4 Elementen bestehen (Anzahl von 0)

Antworten:


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

Unterlistenoperationen werden in der ursprünglichen Liste wiedergegeben , sodass alles von Index 4 einschließlich bis list.size()exklusiv gelöscht wird , auch bekannt als alles nach Index 3. Die Entfernungsentfernung wird speziell als Beispiel in der Dokumentation verwendet:

Diese Methode macht explizite Bereichsoperationen (wie sie normalerweise für Arrays üblich sind) überflüssig. Jede Operation, die eine Liste erwartet, kann als Bereichsoperation verwendet werden, indem anstelle einer ganzen Liste eine Unterlistenansicht übergeben wird. Mit der folgenden Redewendung wird beispielsweise eine Reihe von Elementen aus einer Liste entfernt:

     list.subList(from, to).clear();

12

Mit sublist () und 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());
    }
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.