list.removeAll(Collections.singleton(new ArrayList<>()));
Код выше работает отлично подходит для многих случаев, но это зависит от равна реализация методы списка в списке, поэтому, если у вас что-то похожее на код ниже, он потерпит неудачу.
public class AnotherList extends ArrayList<String> {
@Override
public boolean equals(Object o) {
return o instanceof AnotherList && super.equals(o);
}
}
List<List<String>> list = new ArrayList<>();
list.add(Arrays.asList("abc", "def"));
list.add(Arrays.asList("ghi"));
list.add(new ArrayList<String>());
list.add(new ArrayList<String>());
list.add(new AnotherList());
list.add(null);
list.add(Arrays.asList("jkl", "mno"));
Решение состоит в том:
list.removeIf(x -> x != null && x.isEmpty());
Если вы не беспокоиться о другом осуществлении составляет метод, вы можете использовать другое решение.
Я бы попробовал 'list.removeAll (новый ArrayList());' – Kon
@Kon nope это не сработало – sw2
Почему null или "" совпадают с пустым списком? У вас, кажется, очень странное и неправильное представление о том, что здесь происходит. –