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);
    }
}

 

posted @ 2020-10-28 22:52  正义的五毛  阅读(135)  评论(0)    收藏  举报