BitSet

作者: Ravenddd | 来源:发表于2020-01-12 22:15 被阅读0次

题目: 有1千万个随机数,随机数的范围在1到1亿之间。现在要求写出一种算法,将1到1亿之间没有在随机数中的数求出来

代码

public class Alibaba {
    public static void main(String[] args) {

        // 生成随机数
        Random random=new Random();
        List<Integer> list=new ArrayList<>();
        for(int i=0;i<10000000;i++) {
            int randomResult=random.nextInt(100000000);
            list.add(randomResult);
        }

        // 打印生成随机数
        System.out.println("产生的随机数有");
        for(int i=0;i<list.size();i++) {
            System.out.println(list.get(i));
        }

        // 创建一亿位的BitSet
        BitSet bitSet=new BitSet(100000000);
        for(int i=0;i<10000000;i++) {
            // 把随机数放进去
            bitSet.set(list.get(i));
        }

        // 打印结果:0~1亿不在上述随机数中的结果
        System.out.println("0~1亿不在上述随机数中有" + bitSet.size());
        for (int i = 0; i < 100000000; i++) {
            if(!bitSet.get(i)) {
                System.out.println(i);
            }
        }
    }
}

说明 BitSet

  1. 去重
  2. 正序
  3. 长度为64倍数(默认64)
  4. get()方法是返回boolean值, 存在值为true, 不存在为false(注意:这个get的参数是值, 并不是索引下标)

相关文章

  • bitset

    首先看看bitset的定义: A bitset stores bits (elements with only t...

  • JAVA集合类

    Vector,BitSet,Stack,Hashtable

  • bitset(位图)原理与用法

    分享自我的微信订阅号“猿in”,可以搜索关注。 Bitset基础 介绍 bitset(bitmap)也就是位图,由...

  • BitSet

    题目: 有1千万个随机数,随机数的范围在1到1亿之间。现在要求写出一种算法,将1到1亿之间没有在随机数中的数求出来...

  • BitSet

  • Java Bitset类

    一个Bitset类创建一种特殊类型的数组来保存位值。BitSet中数组大小会随需要增加。这和位向量(vector ...

  • BitSet实现原理及源码解析

    BitSet的结构原理 BitSet, 是Java对位集合抽象出的一种数据结构。它的内部维护了一个long数组,数...

  • JavaSE学习笔记——基本数据结构

    BitSet类BitSet,也就是位图,可以用比较紧凑的格式来表示给定范围的连续数据,最常见的应用就是那些需要对海...

  • C++ bitset用法

    bitset是C++语言的一个类库,用来方便地管理一系列的bit位。使用bitset需要导入头文件:#includ...

  • Bitset改进你的程序质量

    1:Bitset介绍 BitSet 是用于存储二进制位和对二进制进行操作的 自动去重Java 数据结构, 此类实现...

网友评论

      本文标题:BitSet

      本文链接:https://www.haomeiwen.com/subject/qbbwactx.html