javatm platform
standard ed. 6

java.util
类 bitset

java.lang.object 继承者 java.util.bitset
所有〖suǒ yǒu〗已实现的接口:
serializable, cloneable

public class bitset
extends object
implements cloneable, serializable

此类实现了一个按需增长的位向量。位 set 的每个组件都有一个 boolean 值。用非负的整数将 bitset 的位编入索引。可以〖can〗对每个编入索引的位进行测试、设置或者清除。通过逻辑与、逻辑或和逻辑异或操作,可以〖can〗使用一个 bitset 修改另一个 bitset 的内容。

默认情况下,set 中所有位的初始值都是 false

每个位 set 都有一个当前大小,也就是该位 set 当前所用空间的位数。注意〖危险信号〗,这个大小与位 set 的实现有关,所以它可能〖kě néng〗随实现的不同而更改。位 set 的长度〖 dù〗与位 set 的逻辑长度〖 dù〗有关,并且是与实现无关而定义的。

除非另行说明,否则将 null 参数传递给 bitset 中的任何方法都将导致 nullpointerexception

在没有外部同步的情况下,多个线程操作一个 bitset 是不安全〖ān quán〗的。

从以下版本开始〖kāi shǐ〗:
jdk1.0
另请参见:
序列化表格

构造方法摘要
bitset()
          创建一个新的位 set。
bitset(int nbits)
          创建一个位 set,它的初始大小足以显式表示索引范围在 0nbits-1 的位。
 
方法摘要
 voidand(bitset set)
          对此目标位 set 和参数位 set 执行逻辑操作。
 voidandnot(bitset set)
          清除此 bitset 中所有的位,其相应的位在指定的 bitset 中已设置。
 intcardinality()
          返回此 bitset 中设置为 true 的位数。
 voidclear()
          将此 bitset 中的所有位设置为 false
 voidclear(int bitindex)
          将索引指定处的位设置为 false
 voidclear(int fromindex,int toindex)
          将指定的 fromindex(包括〖included〗)到指定的 toindex(不包括〖included〗)范围内的位设置为 false
 objectclone()
          复制此 bitset,生成一个与之相等的新 bitset
 booleanequals(object obj)
          将此对象与指定的对象进行比较。
 voidflip(int bitindex)
          将指定索引处的位设置为其当前值的补码。
 voidflip(int fromindex,int toindex)
          将指定的 fromindex(包括)到指定的 toindex(不包括)范围内的每个位设置为其当前值的补码。
 booleanget(int bitindex)
          返回指定索引处的位值。
 bitsetget(int fromindex,int toindex)
          返回一个新的 bitset,它由此 bitset 中从 fromindex(包括)到 toindex(不包括)范围内的位组成。
 inthashcode()
          返回此位 set 的哈希码值。
 booleanintersects(bitset set)
          如果指定的 bitset 中有设置为 truejs随机数 的位,并且在此 bitset 中也将其设置为 true,则返回 ture。
 booleanisempty()
          如果此 bitset 中没有包含任何设置为 true 的位,则返回 ture。
 intlength()
          返回此 bitset 的“逻辑大小”:bitset 中最高设置位的索引加 1。
 intnextclearbit(int fromindex)
          返回第一个设置为 false 的位的索引,这发生〖occasionally occurred〗在指定的起始索引或之后的索引上。
 intnextsetbit(int fromindex)
          返回第一个设置为 true 的位的索引,这发生〖occasionally occurred〗在指定的起始索引或之后的索引上。
 voidor(bitset set)
          对此位 set 和位 set 参数执行逻辑操作。
 voidset(int bitindex)
          将指定索引处的位设置为 true
 voidset(int bitindex,boolean value)
          将指定索引处的位设置为指定的值。
 voidset(int fromindex,int toindex)
          将指定的 fromindex(包括)到指定的 toindex(不包括)范围内的位设置为 true
 voidset(int fromindex,int toindex,boolean value)
          将指定的 fromindex(包括)到指定的 toindex(不包括)范围内的位设置为指定的值。
 intsize()
          返回此 bitset 表示位值时实际使用空间的位数。
 stringtostring()
          返回此位 set 的字符串表示形式。
 voidxor(bitset set)
          对此位 set 和位 set 参数执行逻辑异或操作。
 
从类 java.lang.object 继承的方法
finalize, getclass, notify, notifyall, wait, wait, wait
 

构造方法详细小糶ǎn〗畔

bitset

public bitset()
创建一个新的位 set。所有的位初始均为 false


bitset

public bitset(int nbits)
创建一个位 set,它的初始大小足以显式表示索引范围在 0nbits-1 的位。所有的位初始均为 false

参数:
nbits - 位 set 的初始大小。
抛出:
negativearraysizeexception - 如果指定的初始大小为负。
方法详细信息

flip

public void flip(int bitindex)
将指定索引处的位设置为其当前值的补码。

参数:
bitindex - 要翻转位的索引。
抛出:
indexoutofboundsexception - 如果指定的索引为负。
从以下版本开始〖kāi shǐ〗:
1.4

flip

public void flip(int fromindex,   int toindex)
将指定的 fromindex(包括)到指定的 toindex(不包括)范围内的每个位设置为其当前值的补码。

参数:
fromindex - 第一个要翻转位的索引。
toindex - 最后一个要翻转位之后那个位的索引。
抛出:
indexoutofboundsexception - 如果 fromindex 为负,或者 toindex 为负,或者 fromindex 大于 toindex
从以下版本开始:
1.4

set

public void set(int bitindex)
将指定索引处的位设置为 true

参数:
bitindex - 一个位索引。
抛出:
indexoutofboundsexception - 如果指定的索引为负。
从以下版本开始:
jdk1.0

set

public void set(int bitindex,    boolean value)
将指定索引处的位设置为指定的值。

参数:
bitindex - 一个位索引。
value - 要设置的 boolean 值。
抛出:
indexoutofboundsexception - 如果指定的索引为负。
从以下版本开始:
1.4

set

public void set(int fromindex,    int toindex)
将指定的 fromindex(包括)到指定的 toindex(不包括)范围内的位设置为 true

参数:
fromindex - 第一个要设置位的索引。
toindex - 最后一个要设置位之后那个位的索引。
抛出:
indexoutofboundsexception - 如果 fromindex 为负,或者 toindex
他说,没有经历战争〖Warfare〗的人们很难想象战争〖Warfare〗的残酷,长期生活在和平中的人们容易淡忘战争的创伤。
赢得初中组总冠军的刘大维是Venado初中八年级学生〖students〗,他从小就想养狗,父母〖Parental〗却以外出旅行〖trip〗时无法〖to be〗喂食为由婉拒,于是刘大维开始动脑筋构思自动喂食机,他自制的喂食机上有两个马达、定时器、移动传感器、摄影镜头等,除了可定时喂食之外,狗主人还可上网透过镜头查看爱〖ài〗狗动静。
艾利斯岛杰出移民奖顾问委员会委员、负责〖fù zé〗亚裔小区宣传和推广工作〖work〗的美国亚裔非营利机构策略联盟主席团主席朱林骥表示,今年艾利斯岛移民奖董事会邀前劳工部长赵小兰参与,顾问委员会还有王培及靳羽西两名〖two〗华裔顾委。
许沛然和杨筱瑜表示,该作品的灵感源于庄周梦蝶对于梦境和现实的概念。
因此〖 yīn cǐ〗,高学历华人多半选择从事制药、工程、计算机等行业,这必然需要较高的教育〖 jiào yù〗经历做基础。
她又指,早前热炒的煤炭、金矿、石油等板块,升势相信〖上帝会存在的〗已近完成,她建议投资者可换马至其他〖other〗基金爱〖ài〗股,她个人推荐平保为首的内险股,以及工业股德昌。
加拿大联邦自由党4日强调〖qiáng diào〗,程颂莲的离任与她父亲无关,主要〖zhǔ yào〗是她的任期届满,属正常换届。
与往年相比,2018年也是政策面扶持股市最给力的一年。
为负,或者 fromindex 大于 toindex
从以下版本开始:
1.4

set

public void set(int fromindex,    int toindex,    boolean value)
将指定的 fromindex(包括)到指定的 toindex(不包括)范围内的位设置为指定的值。

参数:
fromindex - 第一个要设置位的索引。
toindex - 最后一个要设置位之后那个位的索引
value - 所选择的位上要设置的值
抛出:
indexoutofboundsexception - 如果 fromindex 为负,或者 toindex 为负,或者 fromindex 大于 toindex
从以下版本开始:
1.4

clear

public void clear(int bitindex)
将索引指定处的位设置为 false

参数:
bitindex - 要清除位的索引。
抛出:
indexoutofboundsexception - 如果指定的索引为负。
从以下版本开始:
jdk1.0

clear

public void clear(int fromindex,   int toindex)
将指定的 fromindex(包括)到指定的 toindex(不包括)范围内的位设置为 false

参数:
fromindex - 第一个要清除位的索引。
toindex - 最后一个要清除位之后那个位的索引。
抛出:
indexoutofboundsexception - 如果 fromindex 为负,或者 toindex 为负,或者 fromindex 大于 toindex
从以下版本开始:
1.4

clear

public void clear()
将此 bitset 中的所有位设置为 false

从以下版本开始:
1.4

get

public boolean get(int bitindex)
返回指定索引处的位值。如果当前已设置了此 bitset 中索引 bitindex 处的位,则返回 true;否则结果为 false

参数:
bitindex - 位索引。
返回:
指定索引处的位值。
抛出:
indexoutofboundsexception - 如果指定的索引为负。

get

public bitset get(int fromindex,   int toindex)
返回一个新的 bitset,它由此 bitset 中从 fromindex(包括)到 toindex(不包括)范围内的位组成。

参数:
fromindex - 第一个要包括位的索引。
toindex - 最后一个要包括位之后那个位的索引。
返回:
包含此 bitset 某个范围内各位的新 bitset
抛出:
indexoutofboundsexception - 如果 fromindex 为负,或者 toindex 为负,或者 fromindex 大于 toindex
从以下版本开始:
1.4

nextsetbit

public int nextsetbit(int fromindex)
返回第一个设置为 true 的位的索引,这发生在指定的起始索引或之后的索引上。如果没有这样〖zhè yàng〗的位,则返回 -1。要在 bitset 中的 true 位上进行迭代,可以使用以下循环:
for(int i=bs.nextsetbit(0); i>=0; i=bs.nextsetbit(i+1)) { // operate on index i here }

参数:
fromindex - 开始检查的索引(包括)。
返回:
下一个已设置为 true 位的索引。
抛出:
indexoutofboundsexception - 如果指定的索引为负。
从以下版本开始:
1.4

nextclearbit

public int nextclearbit(int fromindex)
返回第一个设置为 false 的位的索引,这发生在指定的起始索引或之后的索引上。

参数:
fromindex - 开始检查的索引(包括)。
返回:
下一个已清除位的索引。
抛出:
indexoutofboundsexception - 如果指定的索引为负。
从以下版本开始:
1.4

length

public int length()
返回此 bitset 的“逻辑大小”:bitset 中最高设置位的索引加 1。如果 bitset 中不包含任何设置位,则返回零。

返回:
bitset 的逻辑大小。
从以下版本开始:
1.2

isempty

public boolean isempty()
如果此 bitset 中没有包含任何设置为 true 的位,则返回 ture。

返回:
指示此 bitset 是否为空的 boolean 值。
从以下版本开始:
1.4

intersects

public boolean intersects(bitset set)
如果指定的 bitset 中有设置为 true 的位,并且在此 bitset 中也将其设置为 true,则返回 ture。

参数:
set - 要与其交叉的 bitset
返回:
指示此 bitset 与指定的 bitset 是否存在交叉的 boolean 值。
从以下版本开始:
1.4

cardinality

public int cardinality()
返回此 bitset 中设置为 true 的位数。

返回:
bitset 中设置为 true 的位数。
从以下版本开始:
1.4

and

public void and(bitset set)
对此目标位 set 和参数位 set 执行逻辑操作。当且仅当目标位 set 的初始值均为 true,并且位 set 参数中对应位的值也为 true 时才修改此位 set,这样〖zhè yàng〗其内每个位的值均为 true

js随机数
参数:
set - 一个位 set。

or

public void or(bitset set)
对此位 set 和位 set 参数执行逻辑操作。当且仅当此位 set 中某个位的值为 true,或者位 set 参数中对应位的值为 true 时才修改此位 set,这样其内该位的值为 true

参数:
set - 一个位 set。

xor

public void xor(bitset set)
对此位 set 和位 set 参数执行逻辑异或操作。当且仅当以下语句之一成立〖was founded〗时才修改此位 set,这样其内某个位的值为 true

参数:
set - 一个位 set。

andnot

public void andnot(bitset set)
清除此 bitset 中所有的位,其相应的位在指定的 bitset 中已设置。

参数:
set网站地图 手机端 - 用来屏蔽此 bitsetbitset
从以下版本开始:
jdk1.2

hashcode

public int hashcode()
返回此位 set 的哈希码值。哈希码只取决于此 bitset 中已经〖yǐ jing〗设置的位。计算其哈希码的算法可以描述如下。

假定 bitset 中的位将存储在一个 long 型的数组(比方说叫 words)中,那么当且仅当表达式

((k>>6) < words.length) && ((words[k>>6] & (1l << (bit & 0x3f))) !=0)
为 ture 时,才在 bitset 中设置位 k(对于非负的 k 值)。然后以下定义的 hashcode 方法才是实际算法的正确实现:
 public int hashcode() { long h=1234; for (int i=words.length; --i >=0; ) {  h ^=words[i] * (i + 1); } return (int)((h >> 32) ^ h); }
注意〖危险信号〗,如果位的设置改变,则哈希码值也将发生更改。

重写 objecthashcode 方法。

覆盖:
object 中的 hashcode
返回:
此位 set 的哈希码值。
另请参见:
object.equals(java.lang.object),hashtable

size

public int size()
返回此 bitset 表示位值时实际使用空间的位数。set 中值最大〖largest〗的元素是第 size - 1 个元素。

返回:
此位 set 中当前的位数。

equals

public boolean equals(object obj)
将此对象与指定的对象进行比较。当且仅当参数不是 null,并且是一个与此位 set 有着完全〖wán quán〗相同的位 set 设置(为 true)的 bitset 对象时,结果才为 true。也就是说,对于每个非负的 int 索引 k
((bitset)obj).get(k)==this.get(k)
一定为 ture。两个位 set 的当前大小不用进行比较。

重写 objectequals 方法。

覆盖:
object 中的 equals
参数:
obj - 要与之比较的对象。
返回:
如果对象相同,则返回 true;否则返回 false
另请参见:
size()

clone

public object clone()
复制此 bitset,生成一个与之相等的新 bitset。复制得到的是另一个位 set,它与此位 set 有着完全〖wán quán〗相同的、设置为 true)的位。

重写 objectclone 方法。

覆盖:
object 中的 clone
返回:
此位 set 的一个副本。
另请参见:
size()

tostring

public string tostring()
返回此位 set 的字符串表示形式。对于此 bitset 中包含的、处于已设置状态的每个位的索引,在结果中会包含这些索引的十进制薄紁iào〗硎拘问健U庑┧饕前创拥偷礁叩乃承蛄谐龅摹⒅溆 "," 分隔(一个逗号加一个空格),并用括号括起来,结果形成〖caused〗〖xíng chéng〗了一组整数的常用数学符号。

重写 objecttostring 方法。

示例:

 bitset drpepper=new bitset();
现在 drpepper.tostring() 返回 "{}"。

 drpepper.set(2);
现在 drpepper.tostring() 返回 "{2}"。

 drpepper.set(4); drpepper.set(10);
现在 drpepper.tostring() 返回 "{2, 4, 10}"。

覆盖:
object 中的 tostring
返回:
此位 set 的字符串表示形式。

javatm platform
standard ed. 6

提交错误或意见〖yì jian〗
有关更多的 api 参考资料和开发〖kāi fā〗人员文档,请参阅 java se 开发〖kāi fā〗人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作〖work〗代码示例。

版权所有 2007 sun microsystems, inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策