Используя другой подход к этому, используя функциональность Java 8 Stream , для любого числа логических значений с произвольным необходимым количеством.Поток короткого замыкания, если он достигает предела перед обработкой всех элементов:
public static boolean atLeastTrue(int amount, Boolean ... booleans) {
return Stream.of(booleans).filter(b -> b).limit(amount).count() == amount;
}
public static void main(String[] args){
System.out.println("1,2: " + atLeastTrue(1, true, false, true));
System.out.println("1,1: " + atLeastTrue(1, false, true));
System.out.println("1,0: " + atLeastTrue(1, false));
System.out.println("1,1: " + atLeastTrue(1, true, false));
System.out.println("2,3: " + atLeastTrue(2, true, false, true, true));
System.out.println("3,2: " + atLeastTrue(3, true, false, true, false));
System.out.println("3,3: " + atLeastTrue(3, true, true, true, false));
}
Выход:
1,2: true
1,1: true
1,0: false
1,1: true
2,3: true
3,2: false
3,3: true