2013-06-16 14 views

Odpowiedz

30

Można użyć removeAll(Collection<?> c):

Usuwa wszystkie elementy tej kolekcji, że są również zawarte w określonej kolekcji

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

Spowoduje to usunięcie wszystkich elementów, które są null lub jest równy "" w twoim List.

wyjściowa:

[name, asd] 
+0

dziękuję, pomogło to –

0

Można usunąć obiekt przez wartość .

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

tak, ale usunie tylko pierwsze puste miejsce, jak używać metody usuwania (""), aby usunąć pustą wartość z tablicy ArrayList? –

+0

Użyj pętli while. Kiedy było coś do usunięcia, zwracane jest "true". Zobacz moją aktualizację. – Devolus

0

iteracyjne nad listy, czytać każdą wartość, porównać go do pustego ciągu "" i jeśli to jest to, że usunięcie go:

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

Innym rozwiązaniem jest zadzwonić Metoda z listy remove(), gdy są puste ciągi na liście:

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

Nie komentuję tego kodu. Powinieneś sam się uczyć. Proszę zwrócić uwagę na wszystkie szczegóły.

Powiązane problemy