新聞中心
BitSet

成都創(chuàng)新互聯(lián)公司是專業(yè)的左權(quán)網(wǎng)站建設(shè)公司,左權(quán)接單;提供網(wǎng)站設(shè)計、成都網(wǎng)站設(shè)計,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行左權(quán)網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!
java.lang.Object
|---java.util.BitSet
public class BitSet
extends Object
implements Cloneable, Serializable這個類實現(xiàn)了一個根據(jù)需要增長的位向量。 位集的每個組件都有一個布爾值。 BitSet 的位由非負(fù)整數(shù)索引。 可以檢查、設(shè)置或清除各個索引位。 一個 BitSet 可用于通過邏輯 AND、邏輯異或和邏輯異或操作來修改另一個 BitSet 的內(nèi)容。
默認(rèn)情況下,集合中的所有位最初都具有值 false。
每個位集都有一個當(dāng)前大小,即該位集當(dāng)前使用的空間位數(shù)。 請注意,大小與位集的實現(xiàn)有關(guān),因此它可能會隨著實現(xiàn)而改變。 位集的長度與位集的邏輯長度相關(guān),并且獨立于實現(xiàn)來定義。
除非另有說明,否則將 null 參數(shù)傳遞給 BitSet 中的任何方法都將導(dǎo)致 NullPointerException。
如果沒有外部同步,BitSet 對于多線程使用是不安全的。
構(gòu)造函數(shù)摘要
| 構(gòu)造函數(shù) | 描述 |
|---|---|
| BitSet() | 創(chuàng)建一個新的位集。 |
| BitSet(int nbits) | 創(chuàng)建一個位集,其初始大小足夠大,可以顯式表示索引范圍為 0 到 nbits-1 的位。 |
方法總結(jié)
| 修飾符和類型 | 方法 | 描述 |
|---|---|---|
| void | and(BitSet set) | 執(zhí)行此目標(biāo)位集與參數(shù)位集的邏輯與。 |
| void | andNot(BitSet set) | 清除此 BitSet 中在指定 BitSet 中設(shè)置了相應(yīng)位的所有位。 |
| int | cardinality() | 返回此 BitSet 中設(shè)置為 true 的位數(shù)。 |
| void | clear() | 將此 BitSet 中的所有位設(shè)置為 false。 |
| void | clear(int bitIndex) | 將索引指定的位設(shè)置為 false。 |
| void | clear(int fromIndex, int toIndex) | 將從指定的 fromIndex(包括)到指定的 toIndex(不包括)的位設(shè)置為 false。 |
| Object | clone() | 克隆此 BitSet 會生成一個與其相同的新 BitSet。 |
| boolean | equals(Object obj) | 將此對象與指定對象進(jìn)行比較。 |
| void | flip(int bitIndex) | 將指定索引處的位設(shè)置為其當(dāng)前值的補(bǔ)碼。 |
| void | flip(int fromIndex, int toIndex) | 將從指定的 fromIndex(包括)到指定的 toIndex(不包括)的每個位設(shè)置為其當(dāng)前值的補(bǔ)碼。 |
| boolean | get(int bitIndex) | 返回具有指定索引的位的值。 |
| BitSet | get(int fromIndex, int toIndex) | 返回一個新的 BitSet,該 BitSet 由該 BitSet 中從 fromIndex(包括)到 toIndex(不包括)的位組成。 |
| int | hashCode() | 返回此位集的哈希碼值。 |
| boolean | intersects(BitSet set) | 如果指定的 BitSet 有任何位設(shè)置為 true,并且在此 BitSet 中也設(shè)置為 true,則返回 true。 |
| boolean | isEmpty() | 如果此 BitSet 不包含設(shè)置為 true 的位,則返回 true。 |
| int | length() | 返回此 BitSet 的“邏輯大小”:BitSet 中最高設(shè)置位的索引加一。 |
| int | nextClearBit(int fromIndex) | 返回在指定起始索引上或之后發(fā)生的設(shè)置為 false 的第一位的索引。 |
| int | nextSetBit(int fromIndex) | 返回在指定起始索引上或之后出現(xiàn)的第一個設(shè)置為 true 的索引。 |
| void | or(BitSet set) | 使用位集參數(shù)執(zhí)行此位集的邏輯或。 |
| int | previousClearBit(int fromIndex) | 返回設(shè)置為 false 的最近位的索引,該位出現(xiàn)在指定的起始索引上或之前。 |
| int | previousSetBit(int fromIndex) | 返回設(shè)置為 true 的最近位的索引,該位出現(xiàn)在指定的起始索引上或之前。 |
| void | set(int bitIndex) | 將指定索引處的位設(shè)置為真。 |
| void | set(int bitIndex, boolean value) | 將指定索引處的位設(shè)置為指定值。 |
| void | set(int fromIndex, int toIndex) | 將指定 fromIndex(包括)到指定 toIndex(不包括)的位設(shè)置為 true。 |
| void | set(int fromIndex, int toIndex, boolean value) | 將指定的 fromIndex(包括)到指定的 toIndex(不包括)的位設(shè)置為指定的值。 |
| int | size() | 返回此 BitSet 實際使用的空間位數(shù),以表示位值。 |
| IntStream | stream() | 返回此 BitSet 包含處于設(shè)置狀態(tài)的位的索引流。 |
| byte[] | toByteArray() | 返回一個包含此位集中所有位的新字節(jié)數(shù)組。 |
| long[] | toLongArray() | 返回一個新的長數(shù)組,其中包含此位集中的所有位。 |
| String | toString() | 返回此位集的字符串表示形式。 |
| static BitSet | valueOf(byte[] bytes) | 返回包含給定字節(jié)數(shù)組中所有位的新位集。 |
| static BitSet | valueOf(long[] longs) | 返回一個包含給定長數(shù)組中所有位的新位集。 |
| static BitSet | valueOf(ByteBuffer bb) | 返回一個新的位集,其中包含給定字節(jié)緩沖區(qū)中其位置和限制之間的所有位。 |
| static BitSet | valueOf(LongBuffer lb) | 返回一個新的位集,其中包含給定長緩沖區(qū)中其位置和限制之間的所有位。 |
| void | xor(BitSet set) | 使用位集參數(shù)執(zhí)行此位集的邏輯異或。 |
| 從類 java.lang.Object 繼承的方法 |
|---|
| finalize, getClass, notify, notifyAll, wait, wait, wait |
構(gòu)造函數(shù)詳細(xì)信息
BitSet
public BitSet()
創(chuàng)建一個新的位集。 所有位最初都是錯誤的。
BitSet
public BitSet(int nbits)
創(chuàng)建一個位集,其初始大小足夠大,可以顯式表示索引范圍為 0 到 nbits-1 的位。 所有位最初都是錯誤的。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| nbits | 位集的初始大小 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NegativeArraySizeException | 如果指定的初始大小為負(fù) |
方法詳情
valueOf
public static BitSet valueOf(long[] longs)
返回一個包含給定長數(shù)組中所有位的新位集。
更準(zhǔn)確地說,對于所有 n < 64 * longs.length,BitSet.valueOf(longs).get(n) == ((longs[n/64] & (1L<<(n%64))) != 0)。
此方法等效于 BitSet.valueOf(LongBuffer.wrap(longs))。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| longs | 一個長數(shù)組,包含一個位序列的小端表示,用作新位集的初始位 |
返回:
包含長數(shù)組中所有位的 BitSet
valueOf
public static BitSet valueOf(LongBuffer lb)
返回一個新的位集,其中包含給定長緩沖區(qū)中其位置和限制之間的所有位。
更準(zhǔn)確地說,BitSet.valueOf(lb).get(n) == ((lb.get(lb.position()+n/64) & (1L<<(n%64))) != 0) n < 64 * lb.remaining()。
該方法不會修改長緩沖區(qū),并且位集不會保留對緩沖區(qū)的引用。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| lb | 一個長緩沖區(qū),包含其位置和限制之間的位序列的小端表示,用作新位集的初始位 |
返回:
包含指定范圍內(nèi)緩沖區(qū)中所有位的 BitSet
valueOf
public static BitSet valueOf(byte[] bytes)
返回包含給定字節(jié)數(shù)組中所有位的新位集。
更準(zhǔn)確地說,對于所有 n < 8 * bytes.length,BitSet.valueOf(bytes).get(n) == ((bytes[n/8] & (1<<(n%8))) != 0)。
此方法等效于 BitSet.valueOf(ByteBuffer.wrap(bytes))。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| bytes | 一個字節(jié)數(shù)組,包含一個位序列的小端表示,用作新位集的初始位 |
返回:
包含字節(jié)數(shù)組中所有位的 BitSet
valueOf
public static BitSet valueOf(ByteBuffer bb)
返回一個新的位集,其中包含給定字節(jié)緩沖區(qū)中其位置和限制之間的所有位。
更準(zhǔn)確地說,BitSet.valueOf(bb).get(n) == ((bb.get(bb.position()+n/8) & (1<<(n%8))) != 0) n < 8 * bb.remaining()。
此方法不會修改字節(jié)緩沖區(qū),并且位集不會保留對緩沖區(qū)的引用。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| bb | 一個字節(jié)緩沖區(qū),包含其位置和限制之間的位序列的小端表示,用作新位集的初始位 |
返回:
包含指定范圍內(nèi)緩沖區(qū)中所有位的 BitSet
toByteArray
public byte[] toByteArray()
返回一個包含此位集中所有位的新字節(jié)數(shù)組。
更準(zhǔn)確地說,如果 byte[] bytes = s.toByteArray(); 然后 bytes.length == (s.length()+7)/8 和 s.get(n) == ((bytes[n/8] & (1<<(n%8))) != 0) 對于所有 n < 8 * bytes.length。
返回:
包含此位集中所有位的小端表示的字節(jié)數(shù)組
toLongArray
public long[] toLongArray()
返回一個新的長數(shù)組,其中包含此位集中的所有位。
更準(zhǔn)確地說,如果 long[] longs = s.toLongArray(); 然后 longs.length == (s.length()+63)/64 和 s.get(n) == ((longs[n/64] & (1L<<(n%64))) != 0) 對于所有 n < 64 * longs.length。
返回:
一個長數(shù)組,包含此位集中所有位的小端表示
flip
public void flip(int bitIndex)
將指定索引處的位設(shè)置為其當(dāng)前值的補(bǔ)碼。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| bitIndex | 要翻轉(zhuǎn)的位的索引 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException | 如果指定的索引為負(fù) |
flip
public void flip(int fromIndex, int toIndex)
將從指定的 fromIndex(包括)到指定的 toIndex(不包括)的每個位設(shè)置為其當(dāng)前值的補(bǔ)碼。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| fromIndex | 要翻轉(zhuǎn)的第一位的索引 |
| toIndex | 最后一位翻轉(zhuǎn)后的索引 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException | 如果 fromIndex 為負(fù)數(shù),或 toIndex 為負(fù)數(shù),或 fromIndex 大于 toIndex |
set
public void set(int bitIndex)
將指定索引處的位設(shè)置為true。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| bitIndex | 位索引 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException | 如果指定的索引為負(fù) |
set
public void set(int bitIndex, boolean value)
將指定索引處的位設(shè)置為指定值。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| bitIndex | 位索引 |
| value | 要設(shè)置的布爾值 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException | 如果指定的索引為負(fù) |
set
public void set(int fromIndex, int toIndex)
將指定 fromIndex(包括)到指定 toIndex(不包括)的位設(shè)置為 true。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| fromIndex | 要設(shè)置的第一位的索引 |
| toIndex | 要設(shè)置的最后一位之后的索引 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException | 如果 fromIndex 為負(fù)數(shù),或 toIndex 為負(fù)數(shù),或 fromIndex 大于 toIndex |
set
public void set(int fromIndex, int toIndex, boolean value)
將指定的 fromIndex(包括)到指定的 toIndex(不包括)的位設(shè)置為指定的值。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| fromIndex | 要設(shè)置的第一位的索引 |
| toIndex | 要設(shè)置的最后一位之后的索引 |
| value | 將所選位設(shè)置為的值 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException | 如果 fromIndex 為負(fù)數(shù),或 toIndex 為負(fù)數(shù),或 fromIndex 大于 toIndex |
clear
public void clear(int bitIndex)
將索引指定的位設(shè)置為 false。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| bitIndex | 要清除的位的索引 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException | 如果指定的索引為負(fù) |
clear
public void clear(int fromIndex, int toIndex)
將從指定的 fromIndex(包括)到指定的 toIndex(不包括)的位設(shè)置為 false。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| fromIndex | 要清除的第一位的索引 |
| toIndex | 要清除的最后一位之后的索引 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException | 如果 fromIndex 為負(fù)數(shù),或 toIndex 為負(fù)數(shù),或 fromIndex 大于 toIndex |
clear
public void clear()
將此 BitSet 中的所有位設(shè)置為 false。
get
public boolean get(int bitIndex)
返回具有指定索引的位的值。 如果當(dāng)前在此 BitSet 中設(shè)置了索引為 bitIndex 的位,則該值為 true; 否則,結(jié)果為false。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| bitIndex | 位索引 |
返回:
具有指定索引的位的值
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException | 如果指定的索引為負(fù) |
get
public BitSet get(int fromIndex, int toIndex)
返回一個新的 BitSet,該 BitSet 由該 BitSet 中從 fromIndex(包括)到 toIndex(不包括)的位組成。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| fromIndex | 要包含的第一位的索引 |
| toIndex | 要包含的最后一位之后的索引 |
返回:
此 BitSet 范圍內(nèi)的新 BitSet
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException | 如果 fromIndex 為負(fù)數(shù),或 toIndex 為負(fù)數(shù),或 fromIndex 大于 toIndex |
nextSetBit
public int nextSetBit(int fromIndex)
返回在指定起始索引上或之后出現(xiàn)的第一個設(shè)置為 true 的索引。 如果不存在這樣的位,則返回 -1。
要遍歷 BitSet 中的真實位,請使用以下循環(huán):
for (int i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i+1)) {
// operate on index i here
if (i == Integer.MAX_VALUE) {
break; // or (i+1) would overflow
}
}參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| fromIndex | 開始檢查的索引(包括) |
返回:
下一個設(shè)置位的索引,如果沒有這樣的位,則為 -1
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException | 如果指定的索引為負(fù) |
nextClearBit
public int nextClearBit(int fromIndex)
返回在指定起始索引上或之后發(fā)生的設(shè)置為 false 的第一位的索引。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| fromIndex | 開始檢查的索引(包括) |
返回:
下一個 clear 位的索引
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException | 如果指定的索引為負(fù) |
previousSetBit
public int previousSetBit(int fromIndex)
返回設(shè)置為 true 的最近位的索引,該位出現(xiàn)在指定的起始索引上或之前。 如果不存在這樣的位,或者如果給出 -1 作為起始索引,則返回 -1。
要遍歷 BitSet 中的真實位,請使用以下循環(huán):
for (int i = bs.length(); (i = bs.previousSetBit(i-1)) >= 0; ) {
// operate on index i here
}參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| fromIndex | 開始檢查的索引(包括) |
返回:
前一個設(shè)置位的索引,如果沒有這樣的位,則為 -1
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException | 如果指定的索引小于 -1 |
previousClearBit
public int previousClearBit(int fromIndex)
返回設(shè)置為 false 的最近位的索引,該位出現(xiàn)在指定的起始索引上或之前。 如果不存在這樣的位,或者如果給出 -1 作為起始索引,則返回 -1。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| fromIndex | the index to start checking from (inclusive) |
返回:
前一個清除位的索引,如果沒有這樣的位,則為 -1
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException | 如果指定的索引小于 -1 |
length
public int length()
返回此 BitSet 的“邏輯大小”:BitSet 中最高設(shè)置位的索引加一。 如果 BitSet 不包含設(shè)置位,則返回零。
返回:
此 BitSet 的邏輯大小
isEmpty
public boolean isEmpty()
如果此 BitSet 不包含設(shè)置為 true 的位,則返回 true。
返回:
指示此 BitSet 是否為空的布爾值
intersects
public boolean intersects(BitSet set)
如果指定的 BitSet 有任何位設(shè)置為 true,并且在此 BitSet 中也設(shè)置為 true,則返回 true。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| set | 與之相交的位集 |
返回:
布爾值,指示此 BitSet 是否與指定的 BitSet 相交
cardinality
public int cardinality()
返回此 BitSet 中設(shè)置為 true 的位數(shù)。
返回:
此 BitSet 中設(shè)置為 true 的位數(shù)
and
public void and(BitSet set)
執(zhí)行此目標(biāo)位集與參數(shù)位集的邏輯與。 修改此位集,以便當(dāng)且僅當(dāng)它最初都具有值 true 并且位集參數(shù)中的相應(yīng)位也具有值 true 時,其中的每個位都具有值 true。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| set | 位設(shè)置 |
or
public void or(BitSet set)
使用位集參數(shù)執(zhí)行此位集的邏輯或。 修改此位集,以便當(dāng)且僅當(dāng)它已經(jīng)具有值 true 或位集參數(shù)中的相應(yīng)位具有值 true 時,其中的位具有值 true。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| set | 位設(shè)置 |
xor
public void xor(BitSet set)
使用位集參數(shù)執(zhí)行此位集的邏輯異或。 此位集被修改,以便當(dāng)且僅當(dāng)以下語句之一成立時,其中的位具有值 true:
- 該位最初的值為真,而參數(shù)中的相應(yīng)位的值為false。
- 該位最初的值為假,而參數(shù)中的相應(yīng)位的值為true。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| set | 位設(shè)置 |
andNot
public void andNot(BitSet set)
清除此 BitSet 中在指定 BitSet 中設(shè)置了相應(yīng)位的所有位。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| set | 用來屏蔽此 BitSet 的 BitSet |
hashCode
public int hashCode()
返回此位集的哈希碼值。 哈希碼僅取決于在此 BitSet 中設(shè)置了哪些位。
哈希碼定義為以下計算的結(jié)果:
public int hashCode() {
long h = 1234;
long[] words = toLongArray();
for (int i = words.length; --i >= 0; )
h ^= words[i] * (i + 1);
return (int)((h >> 32) ^ h);
}請注意,如果位集發(fā)生更改,哈希碼也會更改。
覆蓋:
類 Object 中的 hashCode
返回:
此位集的哈希碼值
size
public int size()
返回此 BitSet 實際使用的空間位數(shù),以表示位值。 集合中的最大元素是大小 - 第一個元素。
返回:
當(dāng)前在此位集中的位數(shù)
equals
public boolean equals(Object obj)
將此對象與指定對象進(jìn)行比較。 當(dāng)且僅當(dāng)參數(shù)不為 null 并且是具有與該位集完全相同的位集設(shè)置為 true 的 Bitset 對象時,結(jié)果才為 true。 也就是說,對于每個非負(fù) int 索引 k,
((BitSet)obj).get(k) == this.get(k)一定為true。 不比較兩個位集的當(dāng)前大小。
覆蓋:
類 Object 中的等于
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| obj | 比較的對象 |
返回:
如果對象相同,則為 true; 否則為false
clone
public Object clone()
克隆此 BitSet 會生成一個與其相同的新 BitSet。 位集的克隆是另一個位集,它具有與該位集完全相同的位設(shè)置為true。
覆蓋:
在類 Object 中克隆
返回:
該位集的克隆
toString
public String toString()
返回此位集的字符串表示形式。 對于此 BitSet 包含處于設(shè)置狀態(tài)的位的每個索引,該索引的十進(jìn)制表示包含在結(jié)果中。 此類索引按從低到高的順序列出,用“、”(逗號和空格)分隔并用大括號括起來,從而形成一組整數(shù)的常用數(shù)學(xué)符號。
例子:
BitSet drPepper = new BitSet();現(xiàn)在 drPepper.toString() 返回“{}”。
drPepper.set(2);現(xiàn)在 drPepper.toString() 返回“{2}”。
drPepper.set(4); drPepper.set(10);現(xiàn)在 drPepper.toString() 返回“{2, 4, 10}”。
覆蓋:
類 Object 中的 toString
返回:
此位集的字符串表示
stream
public IntStream stream()
返回此 BitSet 包含處于設(shè)置狀態(tài)的位的索引流。 索引按從低到高的順序返回。 流的大小是設(shè)置狀態(tài)的位數(shù),等于 cardinality() 方法返回的值。
在終端流操作執(zhí)行期間,位設(shè)置必須保持不變。 否則,終端流操作的結(jié)果是不確定的。
返回:
表示集合索引的整數(shù)流
名稱欄目:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OSBitSet
當(dāng)前鏈接:http://www.dlmjj.cn/article/dpddjse.html


咨詢
建站咨詢
