java的BitSet类学习。
BitSet bs = new BitSet();
System.out.println("bs.size==" + bs.size());
Integer val = 1;
//int的size是4个字节
System.out.println(val.SIZE);
bs.set(0, true);
bs.set(1,false);
bs.set(2,true);
bs.set(3,true);
bs.set(4, false);
System.out.println(bs.size());
//存放第65个数,由于超过了64,所以自动增加了一倍,变成了最大为128
bs.set(64, true);
System.out.println(bs.size());
//存放第129个数,由于超过了128,所以自动增加了一倍,变成了最大为256
bs.set(128, true);
System.out.println(bs.size());
//这里打印出了正确的true和false值
System.out.println(bs.get(0));
System.out.println(bs.get(1));
System.out.println(bs.get(2));
System.out.println(bs.get(3));
bs = new BitSet();
//这里所占用的空间就有32*6=192
int[] prodIds = {3, 24, 45, 42, 1, 7};
System.out.println(prodIds.length);
int len = prodIds.length;
for(int i = 0; i < len; i++){
bs.set(prodIds[i], true);
}
//而这里用了64位就表达了上面的数组,在某些算法里面会得到很大的优化,对于数据存放
System.out.println(bs.size());
int size = bs.size();
for(int i = 0; i < size; i++){
if(bs.get(i)){
System.out.println(i);
}
}
打印输出结果:
bs.size==64
32
64
128
256
true
false
true
true
6
64
1
3
7
24
42
45
总结
BitSet适合用于一些需要用空间换取时间的数据结构,算法。
缺点是不能代表相同的数,比如数组含有两个42时,只能保存一个。
相关推荐
bitset源码Java 这是 Java Bitset 类的字对齐压缩变体。 我们提供 64 位和 32 位类似 RLE 的压缩方案。 它可用于实现位图索引。 它所依赖的 EWAH 格式用于运行 GitHub 的 git 实现。 字对齐压缩的目标不是实现最佳...
java bitset 高级数据结构 源码解析 适合 0-3 年开发人员,进阶、面试必备知识!
主要介绍了浅谈Java BitSet使用场景和代码示例,具有一定借鉴价值,需要的朋友可以参考下。
bitset源码Java源码分析 基础集合列表 ArrayList (done) Vector (done) LinkedList (done) Stack (done) ReferenceQueue (done) ArrayDeque (done) Set HashSet (done) TreeSet (done) LinkedHashSet (done) BitSet ...
java bitset 源码 最后更新于20180424 (Toc generated by ) 数据结构 队列 非阻塞队列:ConcurrentLinkedQueue(无界线程安全),采用CAS机制(compareAndSwapObject原子操作)。 阻塞队列:ArrayBlockingQueue(有界...
bitset 源码 对于Java开发者来说,Java8的版本显然是一个具有里程碑意义的版本,蕴含了许多令人激动的新特性,如果能利用好这些新特性,能够大大提升我们的开发效率。Java8的函数式编程能够大大减少代码量和便于维护...
基于JDK1.8的BitSet 源码分析, 描述了实现的原理 个方法的含义 虽然没有写出实际的测试代码 但是只要是细度了我的这个分析 在使用的时候就不是问题了
java bitset源码 目前进度(171/237) LeetCode做题笔记 Add two numbers:给定一个数集合和一个数,已知集合中有两个数的和是给定数,求这两个加数的index 方法1:暴力,n^2时间复杂度,不推荐 方法2:快速排序nlogn...
Java 原生包 BitSet 源码,0~3年 Java 工程师必看,属于高级数据结构,利于进阶,面试必备!
bitset用法bitset用法bitset用法bitset用法bitset用法bitset用法
C语言头文件 BITSETC语言头文件 BITSETC语言头文件 BITSETC语言头文件 BITSETC语言头文件 BITSETC语言头文件 BITSETC语言头文件 BITSETC语言头文件 BITSETC语言头文件 BITSETC语言头文件 BITSETC语言头文件 BITSETC...
在C++的STL中实现由一个bitset类模板,其用法如下: std::bitset<64> bs; 也就是说,这个bs只能支持64位以内的位存储和操作;bs一旦定义就不能动态增长了。本资源附件中实现了一个动态Bitset,和标准bitset兼容。 /*...
java bitset 源码
java基础之BitSet - 副本
bitset 源码 all-kinds-book 主要包含 java 大数据 数据仓库 数据分析 第三方组件 面试题 数据结构与算法 设计模式 软件设计 等文档 ,可以访问我们的官网查看更多内容 [人在地上跑 牛在天上飞](#人在地上跑 牛在...
Java中的锁和同步类 公平锁 & 非公平锁 悲观锁 乐观锁 & CAS ABA 问题 CopyOnWrite容器 RingBuffer 可重入锁 & 不可重入锁 互斥锁 & 共享锁 死锁 操作系统 计算机原理 CPU 多级缓存 进程 线程 协程 Linux 设计模式 ...
java bitset 源码 redis-bloomFilter redis-bloomFilter是基于redis的bitset实现的bloomfilter.具体原理和实现思路可以参考 使用 redis-bloomFilter发布在JitPack,可以选择下载源码编译,或者通过jitpack源添加依赖...
bitset源码 这个仓库主要放一些 Demo 示例 目录 1. Kotlin 实现 IGetInt java 接口的方法示例: public class IGetInt { String get(int i); String get(Integer i); } 2. Java 并发示例 此部分Demo基本用于实现 《》...
NULL 博文链接:https://huangyunbin.iteye.com/blog/2194731
bitset源码 JAVA 源码研究 使用版本 [jdk-8u211] [环境 IDEA] 构建步骤 1、创建项目结构 rt/ // rt.jar 反编译源码 rtsrc/ // JDK 源码 src/ // 项目源码 2、导入源码 import jdk source of src.zip import jdk ...