Java Language Classe java.util.BitSet


Exemple

Depuis la 1.7, il y a une classe java.util.BitSet qui fournit une interface simple et conviviale de stockage et de manipulation des bits:

final BitSet bitSet = new BitSet(8); // by default all bits are unset

IntStream.range(0, 8).filter(i -> i % 2 == 0).forEach(bitSet::set); // {0, 2, 4, 6}

bitSet.set(3); // {0, 2, 3, 4, 6}

bitSet.set(3, false); // {0, 2, 4, 6}

final boolean b = bitSet.get(3); // b = false

bitSet.flip(6); // {0, 2, 4}

bitSet.set(100); // {0, 2, 4, 100} - expands automatically

BitSet implémente Clonable et Serializable , et sous le capot, toutes les valeurs de bits sont stockées dans long[] words champ long[] words , qui se développe automatiquement.

Il prend également en charge les opérations logiques mis ensemble- and , or , xor , andNot :

bitSet.and(new BitSet(8));
bitSet.or(new BitSet(8));
bitSet.xor(new BitSet(8));
bitSet.andNot(new BitSet(8));