2013-06-16 19 views
8
public class ArrayListTest { 

    public static void main(String[] args) { 
     ArrayList al=new ArrayList(); 
     al.add(""); 
     al.add("name"); 
     al.add(""); 
     al.add(""); 
     al.add(4, "asd"); 
     System.out.println(al); 
    } 
} 

o/p [ad,, asd] arzu O/p [ad, asd]akıllıca

cevap

30

Sen removeAll(Collection<?> c) kullanabilirsiniz:

da belirtilen koleksiyon

al.removeAll(Arrays.asList(null,"")); 

Bu null olan tüm elemanları kaldırır bulunan bu koleksiyonun tüm öğeleri kaldırır veya List ürününüzde ""'a eşittir.

Çıktı: liste üzerinde

[name, asd] 
+0

Teşekkürler, bu yardımcı oldu –

0

Sen değeriyle bir nesneyi kaldırabilirsiniz indeksi çıkarmadan ArrayList.Without gelen boş öğeleri kaldırmak nasıl .

while(al.remove("")); 
+0

evet, ancak yalnızca ilk boş alanı kaldıracak, kaldır ("") yönteminin nasıl kullanılacağını ArrayList'ten tüm boş değerler kaldırılacak? –

+0

Bir süre döngü kullanın. Kaldırılacak bir şey olduğunda, 'true' döndürülür. Güncellemeye bakın. – Devolus

0

Bıkmadan, her bir değeri okumak boş bir dizeye "" karşılaştırmak ve bu ise, çıkarın:

Iterator it = al.iterator(); 
while(it.hasNext()) { 
    //pick up the value 
    String value= (String)it.next(); 

    //if it's empty string 
    if ("".equals(value)) { 
     //call remove on the iterator, it will indeed remove it 
     it.remove(); 
    } 
} 

Başka bir seçenek çağırmaktır Listede remove() yönteminin boş dizeleri varken:

while(list.contains("")) { 
    list.remove(""); 
} 
0
List<String> al=new ArrayList<String>(); 
................... 

for(Iterator<String> it = al.iterator(); it.hasNext();) { 
    String elem = it.next(); 
    if ("".equals(elem)) { 
     it.remove(); 
    } 
} 

Bu kodu yorumlamıyorum. Ondan kendin çalışmalısın. Lütfen tüm ayrıntılarına dikkat edin.

İlgili konular