标签:参数传递 null except 传递 有关 算法设计 另一个 24* font
什么是Bitset
Bitset,也就是位图,由于可以用非常紧凑的格式来表示给定范围的连续数据而经常出现在各种算法设计上。
基本原理是,用1位来表示一个数据是否出现过,0为没有出现过,1表示出现过。使用的时候既可根据一个是否为0表示此数是否出现过。
1G的空间,有8*1024*1024*1024=8.58*10^9 bit,也就是可以表示85亿个不同的数。
以下内容来自JDK API:
Bitset类实现了一个按需增长的位向量。它的每一个组件都有一个boolean值。用非负的整数将BitSet的位编入索引。可以对每个编入索引的位进行测试、设置或者清除。通过逻辑与、逻辑或和逻辑异或操作,可以使用一个BitSet修改另一个BitSet的内容。
默认情况下,set中所有位的初始值都是false。
每个位set都有一个当前大小,也就是该位set当前所用的空间的位数。注意,这个大小与位set的实现有关,所以它可能随实现的不同而更改。位set的长度与位set的逻辑长度有关,并且是与实现无关而定义的。
除非另行说明,否则将null参数传递给BitSet中的任何方法都将导致NullPointerException。
在没有外部同步的情况下,多个线程操作一个BitSet是不安全的。
Bitset的使用场景
标签:参数传递 null except 传递 有关 算法设计 另一个 24* font
原文地址:https://www.cnblogs.com/johnnyzhao/p/13162549.html