位集合(BitSet)| Java数据结构

本文详细介绍了 Java 中的 BitSet 类,通过示例代码展示了如何使用 BitSet 进行位操作,包括设置、清除、翻转位以及进行位运算如 AND、OR 和 XOR。此外,还介绍了 BitSet 的一些常用方法,如 cardinality()、clear()、clone() 和 intersects() 等。

Java Bitset类

BitSet使用示例:

import java.util.BitSet;

public class BitSetDemo {

    public static void main(String args[]) {
        BitSet bits1 = new BitSet(16);
        BitSet bits2 = new BitSet(16);

        // set some bits
        for (int i = 0; i < 16; i++) {
            if ((i % 2) == 0) {
                bits1.set(i);
            }
            if ((i % 5) != 0) {
                bits2.set(i);
            }
        }
        System.out.println(bits1);
        System.out.println(bits2);
        System.out.println("--------------------");
        
        //void and(BitSet set)
        /*bits2.and(bits1);
        System.out.println(bits1);
        System.out.println(bits2);*/
        
        //void andNot(BitSet set)
        /*bits2.andNot(bits1);
        System.out.println(bits1);
        System.out.println(bits2);*/
        
        //int cardinality( )
        /*System.out.println(bits1.cardinality());
        System.out.println(bits2.cardinality());*/
        
        //void clear( )

        /*bits1.clear();
        System.out.println(bits1);
        System.out.println(bits2);*/
        
        // void clear(int index)
        /*bits1.clear(2);
        System.out.println(bits1);
        System.out.println(bits2);*/

        // void clear(int startIndex, int endIndex)
        /*bits1.clear(2,6);//前开后闭
        System.out.println(bits1);
        System.out.println(bits2);*/
        
        //    Object clone( )
        //boolean equals(Object bitSet)
//        BitSet bits3 = (BitSet) bits1.clone();
//        System.out.println(bits3);
//        System.out.println(bits3.equals(bits1));
        
        //void flip(int index)
        /*bits1.flip(0);
        bits1.flip(2);
        bits1.flip(3);
        System.out.println(bits1);
        System.out.println(bits2);*/
        
        //boolean get(int index)
//        System.out.println(bits1.get(4));
//        System.out.println(bits1.get(5));
        
        //BitSet get(int startIndex, int endIndex)
//        BitSet bits3=bits1.get(2,6);
//        System.out.println(bits3);
        
        //int hashCode( )
//        System.out.println(bits1.hashCode());
//        System.out.println(bits1.hashCode());
        
        //boolean intersects(BitSet bitSet)
        /*BitSet bits3 = new BitSet(16);
        System.out.println(bits3);
        bits3.set(0);
        System.out.println(bits3.intersects(bits1));
        System.out.println(bits3.intersects(bits2));
        System.out.println(bits1);
        System.out.println(bits2);
        System.out.println(bits3);*/
        
        //boolean isEmpty( )    
//        bits1.clear();
//        System.out.println(bits1);
//        System.out.println(bits1.isEmpty());

        //...
        
        //OR bits
//         bits2.or(bits1);
//         System.out.println("bits2 OR bits1: ");
//         System.out.println(bits2);
        
        //
//        System.out.println(bits1.size());
        
//        System.out.println(bits1.toString());
        
        bits1.xor(bits2);
        System.out.println(bits1);
    }
}

 

转载于:https://www.cnblogs.com/whoknows1/p/9995645.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值