Java - Usuń null z listy obiektów [duplikat]
Nov 19 2020
Mam ogromny obiekt listy java w następujący sposób:
List<Object[]> res = // repo method that will return query result
Muszę usunąć wartości null z obiektu res.
Próbowałem do tej pory poniższych metod, ale wydawało się, że nic nie działa:
1. res.remove(null);
2. res.removeAll(Collections.singleton(null));
3. res.removeAll(null);
4. while(res.remove(null));
Jak skutecznie usuwać wartości null, skoro rozmiar listy będzie ogromny?
Odpowiedzi
6 NikolasCharalambidis Nov 19 2020 at 17:48
Lista modyfikowalna
Można go używać List::removeIf
z predykatem wykrywającym null
elementy.
List<Object[]> mutableList = new ArrayList<>(Arrays.asList(
new Object[] {},
null,
new Object[] {}));
mutableList.removeIf(Objects::isNull);
Niezmienna lista
W takim przypadku musisz użyć Stream API lub pętli for, aby znaleźć elementy niezerowe i dodać je do nowej listy.
List<Object[]> immutableList = Arrays.asList(
new Object[] {},
null,
new Object[] {});
List<Object[]> newList = immutableList.stream()
.filter(Objects::nonNull)
.collect(Collectors.toList());