Не могу поверить, что нет BitSet
решения.
A BitSet
- это абстракция над набором битов, поэтому нам больше не нужно использовать boolean[]
для более сложных взаимодействий, поскольку он уже содержит большинство необходимых методов. Это также довольно быстро в пакетных операциях, так как он внутренне использует значения long
для хранения битов и поэтому не проверяет каждый бит отдельно, как мы делаем с boolean[]
.
BitSet myBitSet = new BitSet(10);
// fills the bitset with ten true values
myBitSet.set(0, 10);
Для вашего конкретного случая я бы использовал cardinality()
:
if (myBitSet.cardinality() == myBitSet.size()) {
// do something, there are no false bits in the bitset
}
Другая альтернатива - использование Гуава :
return Booleans.contains(myArray, true);