Bitset这种结构虽然简单,实现的时候也有一些细节需要注意。其中关键是一些位操作,比如如何将指定位进行反转、设置、查询指定位的状态(0或者1)等。 本文,分析一下java中BitSet的实现,抛砖引玉,希望给那些需要自己设计位图结构的程序员有所启发。 Bitset的基本操作有: 初始化一个bitset,指定大小。 清空bitset。 反转某...
其次,就是BitSet不属于集合框架,虽然它也叫Set,也位于java.util包下,但看它的源码,它和Set,List,Collection,Map这些没什么关系。但既然叫Set了,我们就拿过来一起分析。 其基本原理是使用一个数的二进制的一位来表示一个数据是否出现过,1表示出现过,0表示没出现过。
void and(BitSet set) // 两个BitSet 做与操作,结果并存入当前 BitSet void andNot(BitSet set) // 两个BitSet 与非操作 void flip(int index) // 反转某一个指定 index boolean intersects(BitSet bitSet) // 是否有交集 int cardinality() //返回 true/1 的个数 void clear() // 重置 void clear(in...
清空bitset。 反转某一指定位。 设置某一指定位。 获取某一位的状态。 当前bitset的bit总位数。 逻辑计算 and or andNot xor 排序: 按照顺序循环取出在BitSet存在的数,以此达到排序的目的 02. Bitset 源码: recalculateWordsInUse(); wordsInUse 是检查当前的long数组中,实际使用的long的个数 checkInvariants();...
11. BitSet类 11.1 BitSet 用于位操作的类,通常用于标记某些条件或状态。 BitSet bitSet = new BitSet(); bitSet.set(2); 1. 2. 12. WeakHashMap类 12.1 WeakHashMap 一种特殊的HashMap,对于键而言是弱引用,有助于避免内存泄漏。 Map<String, Integer> weakHashMap = new WeakHashMap<>(); ...
BitSet bitSet = new BitSet(8); // 创建一个有8位的BitSet bitSet.set(2); // 设置第2位为1 bitSet.set(5); // 设置第5位为1 boolean isSet = bitSet.get(2); // 获取第2位的值(true) 24. 什么是Arrays类的asList()方法? 回答:Arrays.asList()方法是java.util.Arrays类提供的一个实用方法...
Vector 属于遗留 容器(Java 早期的版本中提供的容器,除此之外,Hashtable、Dictionary、BitSet、Stack、Properties 都是遗留容器),已经不推荐使用,但是由于ArrayList 和 LinkedListed 都是非线程安全的,如果遇到多个线程操作同一个 容器的场景,则可以通过工具类 Collections 中的 synchronizedList 方法将其 转换成线程安全的...
类覆盖了 equals() 方法:一旦覆盖了该方法,则用来比较两个对象的内容是否相等,如我们常用的 String、BitSet、Data、File 就覆盖了 equals() 方法; 5. 方法 5.1 方法的类型 无参无返回值; 无参有返回值; 有参无返回值; 有参有返回值; 5.2 重载和重写 重载(Overload) 重载就是同样方法能够根据输入的不同,...
其他方式,包括Random.ints()、BitSet.stream()、Pattern.splitAsStream(java.lang.CharSequence)、JarFile.stream()。 Stream 和集合的区别 流不是数据结构。它只与计算相关,且按需计算,不存储任何数据。什么叫只与计算相关?用听音乐打个比方,音乐存储在硬盘上,需要时本地播放,这是集合;音乐存放在网络上,需要时...
4.91 Bitset 类 4.92 Vector 类 4.93 Stack 类 4.94 Dictionary 类 4.95 Hashtable 类 4.96 Properties 类 4.97 Map 接口 4.98 Java URL处理 4.99 Java ByteArrayInputStream类 4.100 Java DataInputStream类 4.101 Java ByteArrayOutputStream类 4.102 Java DataOutputStream类 ...