Bit Set



Что, если нам нужно выполнить какие-то операции с массивами битов? Вы будете использовать для этого boolean[]?



Для этого есть более эффективный с точки зрения использования памяти метод.



Это класс BitSet, позволяющий нам хранить массивы битов и манипулировать ими. По сравнению с boolean[] он требует в 8 раз меньше памяти. Мы можем выполнять логические операции над массивами, такими как, например and, or, xor.



Допустим, у нас есть два входных массива битов. Мы хотим провести на них операцию xor.



Уточню, операция xor, возвращает только те элементы, которые имеются только в одном массиве, но не в другом. Для этого нам нужно создать два экземпляра BitSet и вставить туда элементы, как показано ниже. Наконец, вы должны вызвать метод xor в одном из BitSet объектов, указав в качестве аргумента второй BitSet объект.