2014-04-02 27 views
29

Czy istnieje wygodny sposób w liście/ArrayList, przez który możemy usunąć wszystkie elementy listy po określonym indeksie. Zamiast ręcznie przepuszczać przez niego pętlę do usunięcia. Aby uzyskać więcej informacji, jeśli mam listę 10 elementów, chcę wspomnieć o indeksie 3, a następnie wszystkie elementy po usunięciu indeksu 3 i moja lista składałaby się tylko z 4 elementów rozpoczynających się teraz (liczy od 0)Usunąć wszystkie elementy z listy po określonym indeksie

Odpowiedz

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

Sublist operations are reflected in the original list, więc ta kasuje wszystko z indeksem 4 włącznie do list.size() ekskluzywny, alias wszystko po usunięciu indeksu 3. Zakres jest specjalnie używany jako przykład w dokumentacji:

metoda ta eliminuje potrzebę jawny zakres o Postacje (z sortowania, które zwykle istnieją dla tablic). Każda operacja, która wymaga listy , może być używana jako operacja zasięgu, przekazując widok listy podrzędnej zamiast całej listy. Na przykład, następujące idiom usuwa szereg elementów z listy:

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

Używając podmenu (i) (jasne)

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()); 
    } 
} 
Powiązane problemy