码迷,mamicode.com
首页 > 编程语言 > 详细

java中的Bitset

时间:2020-06-19 14:24:18      阅读:54      评论:0      收藏:0      [点我收藏+]

标签:参数传递   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的使用场景

java中的Bitset

标签:参数传递   null   except   传递   有关   算法设计   另一个   24*   font   

原文地址:https://www.cnblogs.com/johnnyzhao/p/13162549.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!