BitSet使用

SHOW CODE

public static void main(String[] args) {

        Integer LENGTH = 1000000;

        /**
         * 初始化一个已知大小的 BitSet
         * 存储100W个 bit,占用内存大小约 122.1 KB
         */
        BitSet bitSet = new BitSet(LENGTH);
        System.out.println("bitSet humanSizeOf begin:" + RamUsageEstimator.humanSizeOf(bitSet));


        /**
         * 构造100W个 Integer的Set
         * 大小约占用 53.8M
         */
        Set list = Sets.newHashSet();
        for (int i = 0; i < LENGTH; i++) {
            list.add(i);
        }
        System.out.println("list size:" + list.size());
        System.out.println("list humanSizeOf:" + RamUsageEstimator.humanSizeOf(list));

        /**
         * 将值设置到bitSet
         * 大小不变
         */
        for (int i = 0; i < list.size(); i++) {
            bitSet.set(i, true);
        }
        System.out.println("bitSet humanSizeOf end:" + RamUsageEstimator.humanSizeOf(bitSet));

        /**
         * BitSet
         * 1. 适合标识一些列连续存储的数据
         * 2. 存储数据,仅有true、false之间的区别
         *
         * 比如:
         *
         * 现在工厂有100W个工人,现在需要区分下 本科生 以及 非本科生,并且按照工号开始排序打印
         */
        
    }

依赖二方库


          org.apache.lucene
                lucene-core
                7.7.1
            

你可能感兴趣的:(BitSet使用)