java BitSet的使用
简单使用
创建
public class Test { public static void main(String... arg) { BitSet bitSet = new BitSet(8); System.out.println(bitSet); //BitSet 中最高设置位的索引加 1 bitSet.set(5); int length = bitSet.length(); System.out.println(length); } }
位赋值
public class Test { public static void main(String... arg) { //设置某一位为true BitSet bitSet = new BitSet(8); bitSet.set(7); System.out.println(bitSet.toString()); bitSet = new BitSet(8); bitSet.set(0,7); //设置某一位为false bitSet.clear(5); System.out.println(bitSet.toString()); //位置 0 - 7 为true bitSet = new BitSet(8); bitSet.set(0,7); System.out.println(bitSet.toString()); //位置 0 - 7 为false bitSet.clear(0,7); System.out.println(bitSet.toString()); } }
位运算
public class Test { public static void main(String... arg) { //位or BitSet aBitSet = new BitSet(8); aBitSet.set(0, 4); BitSet bBitSet = new BitSet(8); bBitSet.set(4, 8); aBitSet.or(bBitSet); System.out.println(aBitSet.toString()); //位与 aBitSet = new BitSet(8); aBitSet.set(0, 4); bBitSet = new BitSet(8); bBitSet.set(4, 8); aBitSet.and(bBitSet); System.out.println(aBitSet.toString()); //异或 aBitSet = new BitSet(8); aBitSet.set(0, 4); bBitSet = new BitSet(8); bBitSet.set(4, 8); aBitSet.xor(bBitSet); System.out.println(aBitSet.toString()); //反转 aBitSet = new BitSet(8); aBitSet.set(0, 8); aBitSet.flip(5); System.out.println(aBitSet.toString()); aBitSet = new BitSet(8); aBitSet.flip(0,5); System.out.println(aBitSet.toString()); //如果指定的 BitSet 中有设置为 true 的位,并且在此 BitSet 中也将其设置为 true,则返回 true。 //判断是否有交集 aBitSet = new BitSet(8); aBitSet.set(0, 5); bBitSet = new BitSet(8); bBitSet.set(3, 8); boolean hasIntersect = aBitSet.intersects(bBitSet); System.out.println(hasIntersect); } }