Java: eliminar nulo de la lista de objetos [duplicado]
Nov 19 2020
Tengo un objeto de lista java de gran tamaño de la siguiente manera:
List<Object[]> res = // repo method that will return query result
Tengo que eliminar los nulos del objeto res.
Probé los siguientes métodos hasta ahora, pero nada parecía funcionar:
1. res.remove(null);
2. res.removeAll(Collections.singleton(null));
3. res.removeAll(null);
4. while(res.remove(null));
¿Cómo puedo eliminar los nulos de manera eficiente si el tamaño de la lista será enorme?
Respuestas
6 NikolasCharalambidis Nov 19 2020 at 17:48
Lista mutable
Puede utilizar List::removeIfcon un predicado que detecte nullelementos.
List<Object[]> mutableList = new ArrayList<>(Arrays.asList(
new Object[] {},
null,
new Object[] {}));
mutableList.removeIf(Objects::isNull);
Lista inmutable
En este caso, debe usar Stream API o un bucle for para encontrar elementos no nulos y agregarlos a una nueva lista.
List<Object[]> immutableList = Arrays.asList(
new Object[] {},
null,
new Object[] {});
List<Object[]> newList = immutableList.stream()
.filter(Objects::nonNull)
.collect(Collectors.toList());