как удалить пустые элементы из коллекции.Без удаления индекса wise

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 [, name,,, asd] желание O / p [имя, asd]

4 ответов


можно использовать removeAll(Collection<?> c) :

удаляет все элементы этой коллекции, которые также содержатся в указанная коллекция

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

это удалит все элементы, которые являются null или равно "" в своем List.

выход :

[name, asd]

вы можете удалить объект по значению.

while(al.remove(""));

повторите список, прочитайте каждое значение, сравните его с пустой строкой "" и если это так, удалите его:

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

другой вариант-вызов списка remove() метод, пока в списке есть пустые строки:

while(list.contains("")) {
    list.remove("");
}

List<String> al=new ArrayList<String>();
................... 

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

Я не комментирую этот код. Ты сам должен учиться у него. Пожалуйста, обратите внимание на все подробности.