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)

Abhi
quelle

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();
user2357112 unterstützt Monica
quelle
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());
    }
}
AJJ
quelle