Java - Remover nulo da lista de objetos [duplicado]
Nov 19 2020
Eu tenho um objeto de lista java de tamanho enorme, como segue:
List<Object[]> res = // repo method that will return query result
Tenho que remover nulos do objeto res.
Eu tentei os métodos abaixo até agora, mas nada parecia funcionar:
1. res.remove(null);
2. res.removeAll(Collections.singleton(null));
3. res.removeAll(null);
4. while(res.remove(null));
Como posso remover nulos de forma eficiente, pois o tamanho da lista será enorme?
Respostas
6 NikolasCharalambidis Nov 19 2020 at 17:48
Lista mutável
Você pode usar List::removeIfcom um predicado de detecção de nullitens.
List<Object[]> mutableList = new ArrayList<>(Arrays.asList(
new Object[] {},
null,
new Object[] {}));
mutableList.removeIf(Objects::isNull);
Lista imutável
Nesse caso, você deve usar a API Stream ou um loop for para localizar elementos não nulos e adicioná-los a uma nova lista.
List<Object[]> immutableList = Arrays.asList(
new Object[] {},
null,
new Object[] {});
List<Object[]> newList = immutableList.stream()
.filter(Objects::nonNull)
.collect(Collectors.toList());
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
Christopher Nolan uma vez se arrependeu de ter lido o 'roteiro de Pulp Fiction' de Quentin Tarantino