2016-12-07 2 views
-1

Y at-il une méthode de bibliothèque qui vérifiera si la liste n'est pas vide et a un objet qui n'est pas nul?Vérifiez si la liste contient au moins un objet non nul

Y at-il une meilleure alternative pour le code suivant

if(!list.isEmpty() && list.get(0) != null){ 
    ... 
} 

S'il vous plaît laissez-moi savoir si ce morceau de code peut être amélioré de quelque façon.

+0

Je ne pense pas que vous avez besoin de la deuxième partie « && list.get (0)! = Null 'car cela est déjà pris en charge par l'appel isEmpty(). De plus, list.get (0) pourrait être nul alors que list.get (1) n'est pas nul, donc il n'ajoute pas de valeur en fonction de vos critères. – mba12

+0

@ mba12 Je me soucie seulement du premier objet n'est pas nul. – codeMan

+1

Si c'est le cas, vous devriez éditer votre question pour refléter les critères que seul le premier objet n'est pas nul. – mba12

Répondre

4

Je suppose que vous pouvez essayer avec java 8

if (list.stream().anyMatch(e -> e != null)) {... } 
+5

Ou 'anyMatch (Objects :: nonNull)' –

1

Votre code ne fonctionne pas. Que se passe-t-il si l'élément null est le deuxième ou le troisième?

Une façon simple est d'utiliser la méthode contains:

Renvoie true si cette liste contient l'élément spécifié. Plus formellement, renvoie vrai si et seulement si cette liste contient au moins un élément e tel que (o == null? E == null: o.equals (e)).

Si vous devez vérifier si elle existe exactement un élément NOT NULL est le code que vous devez écrire ici:

int countNull = 0; 
for (Object obj : list) { 
    if (obj == null) { 
     countNull++; 
    } 
} 
if (countNull == list.size() - 1) { 
    // Contains exactly one not null element 
} 
+0

Je veux vérifier s'il existe un seul objet non nul. – codeMan

+0

Non, OP veut vérifier s'il y a au moins un élément non nul. –

+0

@tobias_k J'ai édité la question. Jetez un oeil – codeMan