2014-04-02 29 views
29

Belirli bir dizinden sonra bir Listenin tüm öğelerini kaldırabileceğimiz List/ArrayList öğesinde herhangi bir uygun yol var mı? Kaldırmak için elle döngü yapmak yerine.Belirli bir dizinden sonra bir listeden tüm öğeleri kaldırın

Daha açıklayıcı olmak gerekirse, 10 öğeden oluşan bir listem varsa, dizin 3'ten bahsetmek istiyorum ve sonra dizin 3'ten sonraki tüm öğeler kaldırıldı ve listem artık yalnızca 4 öğeden oluşuyor (0'dan geliyor)

cevap

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

Sublist operations are reflected in the original list , böylece endeks 3. Menzil kaldırma özellikle belgelerinde örnek olarak kullanıldıktan sonra bu şeyin aka list.size() münhasır için endeks dahil 4 herşeyi temizler:

Bu yöntem ihtiyacı için ortadan kaldırır açık menzili o perasyonları (genellikle diziler için mevcut olan türünde). listesini bekleyen herhangi bir işlem, tüm liste yerine bir alt liste görünümü iletilerek aralık işlemi olarak kullanılabilir. Örneğin, aşağıdaki deyim bir listeden elemanlarının aralığı kaldırır:

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

alt listesini() ve açık() kullanılarak,

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()); 
    } 
} 
İlgili konular