86 votes

Quelle est la manière la plus élégante de vérifier si toutes les valeurs d'un tableau booléen sont vraies ?

J'ai un tableau booléen en java :

 boolean[] myArray = new boolean[10];

Quelle est la manière la plus élégante de vérifier si toutes les valeurs sont vraies ?

96voto

Eng.Fouad Points 44085
public static boolean areAllTrue(boolean[] array)
{
    for(boolean b : array) if(!b) return false;
    return true;
}

93voto

spaceCamel Points 826
Arrays.asList(myArray).contains(false)

40voto

Kapil Sharma Points 728

En Java 8, vous pouvez faire :

 boolean isAllTrue = Arrays.asList(myArray).stream().allMatch(val -> val == true);

Ou encore plus court :

 boolean isAllTrue = Arrays.stream(myArray).allMatch(Boolean::valueOf);

Noter: Vous avez besoin de Boolean[] pour que cette solution fonctionne. Parce que vous ne pouvez pas avoir de liste de primitives.

18voto

rich.okelly Points 24144

Cela dépend du nombre de fois que vous voudrez trouver ces informations, si plus d'une fois :

 Set<Boolean> flags = new HashSet<Boolean>(myArray);
flags.contains(false);

Sinon une boucle en court-circuit :

 for (i = 0; i < myArray.length; i++) {
  if (!myArray[i]) return false;
}
return true;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X