Java - Supprimer null de la liste des objets [dupliquer]
Nov 19 2020
J'ai un objet de liste java de taille énorme comme suit:
List<Object[]> res = // repo method that will return query result
Je dois supprimer les valeurs nulles de l'objet res.
J'ai essayé les méthodes ci-dessous jusqu'à présent, mais rien ne semblait fonctionner:
1. res.remove(null);
2. res.removeAll(Collections.singleton(null));
3. res.removeAll(null);
4. while(res.remove(null));
Comment puis-je supprimer efficacement les valeurs nulles car la taille de la liste va être énorme?
Réponses
6 NikolasCharalambidis Nov 19 2020 at 17:48
Liste mutable
Vous pouvez utiliser List::removeIf
avec un prédicat pour détecter des null
éléments.
List<Object[]> mutableList = new ArrayList<>(Arrays.asList(
new Object[] {},
null,
new Object[] {}));
mutableList.removeIf(Objects::isNull);
Liste immuable
Dans ce cas, vous devez utiliser l'API Stream ou une boucle for pour trouver des éléments non nuls et les ajouter à une nouvelle liste.
List<Object[]> immutableList = Arrays.asList(
new Object[] {},
null,
new Object[] {});
List<Object[]> newList = immutableList.stream()
.filter(Objects::nonNull)
.collect(Collectors.toList());