2014-04-02 7 views
29

Gibt es eine bequeme Möglichkeit in List/ArrayList, mit der wir alle Elemente einer Liste nach einem bestimmten Index entfernen können. Anstatt es zum Entfernen manuell zu durchlaufen.Entfernen Sie alle Elemente aus einer Liste nach einem bestimmten Index

Um genauer zu sein, wenn ich eine Liste von 10 Elementen habe, möchte ich Index 3 erwähnen und dann werden alle Elemente nach Index 3 entfernt und meine Liste würde nur noch aus 4 Elementen bestehen (zählt von 0)

Antwort

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

Sublist operations are reflected in the original list, so löscht dies alles aus dem Index 4 bis einschließlich list.size() exklusiv, auch bekannt als alles nach Index 3. Strecke Entfernung speziell als Beispiel in der Dokumentation verwendet wird:

diese Methode für die Notwendigkeit beseitigt, expliziter Bereich o Funktionen (der Sortierung, die normalerweise für Arrays existiert). Jeder Vorgang, der eine -Liste erwartet, kann als Bereichsoperation verwendet werden, indem statt einer ganzen Liste eine Unterlistenansicht übergeben wird. Zum Beispiel entfernt das folgende Idiom einen Bereich von Elementen aus einer Liste:

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

Verwendung 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()); 
    } 
} 
Verwandte Themen