|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.util.BitSet
public class BitSet
此類別實作了一個按需增長的位元向量。位 set 的每個元件都有一個 boolean
值。用非負的整數將 BitSet
的位編入索引。可以對每個編入索引的位進行測試、設置或者清除。通過邏輯與、邏輯或和邏輯異或操作,可以使用一個 BitSet
修改另一個 BitSet
的內容。
預設情況下,set 中所有位的初始值都是 false
。
每個位 set 都有一個當前大小,也就是該位 set 當前所用空間的位數。注意,這個大小與位 set 的實作有關,所以它可能隨實作的不同而更改。位 set 的長度與位 set 的邏輯長度有關,並且是與實作無關而定義的。
除非另行說明,否則將 null 參數傳遞給 BitSet
中的任何方法都將導致 NullPointerException
。
在沒有外部同步的情況下,多個執行緒操作一個 BitSet
是不安全的。
建構子摘要 | |
---|---|
BitSet()
創建一個新的位 set。 |
|
BitSet(int nbits)
創建一個位 set,它的初始大小足以顯式表示索引範圍在 0 到 nbits-1 的位。 |
方法摘要 | |
---|---|
void |
and(BitSet set)
對此目標位 set 和參數位 set 執行邏輯與操作。 |
void |
andNot(BitSet set)
清除此 BitSet 中所有的位,其相應的位在指定的 BitSet 中已設置。 |
int |
cardinality()
返回此 BitSet 中設置為 true 的位數。 |
void |
clear()
將此 BitSet 中的所有位設置為 false 。 |
void |
clear(int bitIndex)
將索引指定處的位設置為 false 。 |
void |
clear(int fromIndex,
int toIndex)
將指定的 fromIndex(包括)到指定的 toIndex(不包括)範圍內的位設置為 false 。 |
Object |
clone()
複製此 BitSet ,產生一個與之相等的新 BitSet 。 |
boolean |
equals(Object obj)
將此物件與指定的物件進行比較。 |
void |
flip(int bitIndex)
將指定索引處的位設置為其當前值的補碼。 |
void |
flip(int fromIndex,
int toIndex)
將指定的 fromIndex(包括)到指定的 toIndex(不包括)範圍內的每個位設置為其當前值的補碼。 |
boolean |
get(int bitIndex)
返回指定索引處的位值。 |
BitSet |
get(int fromIndex,
int toIndex)
返回一個新的 BitSet,它由此 BitSet 中從 fromIndex(包括)到 toIndex(不包括)範圍內的位組成。 |
int |
hashCode()
返回此位 set 的雜湊碼值。 |
boolean |
intersects(BitSet set)
如果指定的 BitSet 中有設置為 true 的位,並且在此 BitSet 中也將其設置為 true ,則返回 ture。 |
boolean |
isEmpty()
如果此 BitSet 中沒有包含任何設置為 true 的位,則返回 ture。 |
int |
length()
返回此 BitSet 的“邏輯大小”:BitSet 中最高設置位的索引加 1。 |
int |
nextClearBit(int fromIndex)
返回第一個設置為 false 的位的索引,這發生在指定的起始索引或之後的索引上。 |
int |
nextSetBit(int fromIndex)
返回第一個設置為 true 的位的索引,這發生在指定的起始索引或之後的索引上。 |
void |
or(BitSet set)
對此位 set 和位 set 參數執行邏輯或操作。 |
void |
set(int bitIndex)
將指定索引處的位設置為 true 。 |
void |
set(int bitIndex,
boolean value)
將指定索引處的位設置為指定的值。 |
void |
set(int fromIndex,
int toIndex)
將指定的 fromIndex(包括)到指定的 toIndex(不包括)範圍內的位設置為 true 。 |
void |
set(int fromIndex,
int toIndex,
boolean value)
將指定的 fromIndex(包括)到指定的 toIndex(不包括)範圍內的位設置為指定的值。 |
int |
size()
返回此 BitSet 表示位值時實際使用空間的位數。 |
String |
toString()
返回此位 set 的字元串表示形式。 |
void |
xor(BitSet set)
對此位 set 和位 set 參數執行邏輯異或操作。 |
從類別 java.lang.Object 繼承的方法 |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
建構子詳細資訊 |
---|
public BitSet()
false
。
public BitSet(int nbits)
0
到 nbits-1
的位。所有的位初始均為 false
。
nbits
- 位 set 的初始大小。
NegativeArraySizeException
- 如果指定的初始大小為負。方法詳細資訊 |
---|
public void flip(int bitIndex)
bitIndex
- 要翻轉位的索引。
IndexOutOfBoundsException
- 如果指定的索引為負。public void flip(int fromIndex, int toIndex)
fromIndex
- 第一個要翻轉位的索引。toIndex
- 最後一個要翻轉位之後那個位的索引。
IndexOutOfBoundsException
- 如果 fromIndex 為負,或者 toIndex 為負,或者 fromIndex 大於 toIndex。public void set(int bitIndex)
true
。
bitIndex
- 一個位索引。
IndexOutOfBoundsException
- 如果指定的索引為負。public void set(int bitIndex, boolean value)
bitIndex
- 一個位索引。value
- 要設置的 boolean 值。
IndexOutOfBoundsException
- 如果指定的索引為負。public void set(int fromIndex, int toIndex)
true
。
fromIndex
- 第一個要設置位的索引。toIndex
- 最後一個要設置位之後那個位的索引。
IndexOutOfBoundsException
- 如果 fromIndex 為負,或者 toIndex 為負,或者 fromIndex 大於 toIndex。public void set(int fromIndex, int toIndex, boolean value)
fromIndex
- 第一個要設置位的索引。toIndex
- 最後一個要設置位之後那個位的索引value
- 所選擇的位上要設置的值
IndexOutOfBoundsException
- 如果 fromIndex 為負,或者 toIndex 為負,或者 fromIndex 大於 toIndex。public void clear(int bitIndex)
false
。
bitIndex
- 要清除位的索引。
IndexOutOfBoundsException
- 如果指定的索引為負。public void clear(int fromIndex, int toIndex)
false
。
fromIndex
- 第一個要清除位的索引。toIndex
- 最後一個要清除位之後那個位的索引。
IndexOutOfBoundsException
- 如果 fromIndex 為負,或者 toIndex 為負,或者 fromIndex 大於 toIndex。public void clear()
false
。
public boolean get(int bitIndex)
BitSet
中索引 bitIndex
處的位,則返回 true
;否則結果為 false
。
bitIndex
- 位索引。
IndexOutOfBoundsException
- 如果指定的索引為負。public BitSet get(int fromIndex, int toIndex)
fromIndex
- 第一個要包括位的索引。toIndex
- 最後一個要包括位之後那個位的索引。
IndexOutOfBoundsException
- 如果 fromIndex 為負,或者 toIndex 為負,或者 fromIndex 大於 toIndex。public int nextSetBit(int fromIndex)
true
的位的索引,這發生在指定的起始索引或之後的索引上。如果沒有這樣的位,則返回 -1。
要在 BitSet
中的 true
位上進行迭代,可以使用以下循環:
for(int i=bs.nextSetBit(0); i>=0; i=bs.nextSetBit(i+1)) { // operate on index i here }
fromIndex
- 開始檢查的索引(包括)。
IndexOutOfBoundsException
- 如果指定的索引為負。public int nextClearBit(int fromIndex)
false
的位的索引,這發生在指定的起始索引或之後的索引上。
fromIndex
- 開始檢查的索引(包括)。
IndexOutOfBoundsException
- 如果指定的索引為負。public int length()
BitSet
的“邏輯大小”:BitSet
中最高設置位的索引加 1。如果 BitSet
中不包含任何設置位,則返回零。
BitSet
的邏輯大小。public boolean isEmpty()
BitSet
中沒有包含任何設置為 true
的位,則返回 ture。
BitSet
是否為空的 boolean 值。public boolean intersects(BitSet set)
BitSet
中有設置為 true
的位,並且在此 BitSet
中也將其設置為 true
,則返回 ture。
set
- 要與其交叉的 BitSet
BitSet
與指定的 BitSet
是否存在交叉的 boolean 值。public int cardinality()
BitSet
中設置為 true 的位數。
BitSet
中設置為 true 的位數。public void and(BitSet set)
true
,並且位 set 參數中對應位的值也為 true
時才修改此位 set,這樣其內每個位的值均為 true
。
set
- 一個位 set。public void or(BitSet set)
true
,或者位 set 參數中對應位的值為 true
時才修改此位 set,這樣其內該位的值為 true
。
set
- 一個位 set。public void xor(BitSet set)
true
:
true
,並且參數對應位的值為 false
。
false
,並且參數對應位的值為 true
。
set
- 一個位 set。public void andNot(BitSet set)
BitSet
中所有的位,其相應的位在指定的 BitSet
中已設置。
set
- 用來屏蔽此 BitSet
的 BitSet
。public int hashCode()
BitSet
中已經設置的位。計算其雜湊碼的演算法可以描述如下。
假定 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); }注意,如果位的設置改變,則雜湊碼值也將發生更改。
覆寫 Object
的 hashCode
方法。
Object
中的 hashCode
Object.equals(java.lang.Object)
,
Hashtable
public int size()
BitSet
表示位值時實際使用空間的位數。set 中值最大的元素是第 size - 1 個元素。
public boolean equals(Object obj)
null
,並且是一個與此位 set 有著完全相同的位 set 設置(為 true
)的 Bitset
物件時,結果才為 true
。也就是說,對於每個非負的 int
索引 k
,
((BitSet)obj).get(k) == this.get(k)一定為 ture。兩個位 set 的當前大小不用進行比較。
覆寫 Object
的 equals
方法。
Object
中的 equals
obj
- 要與之比較的物件。
true
;否則返回 false
。size()
public Object clone()
BitSet
,產生一個與之相等的新 BitSet
。複製得到的是另一個位 set,它與此位 set 有著完全相同的、設置為 true
)的位。
覆寫 Object
的 clone
方法。
Object
中的 clone
size()
public String toString()
BitSet
中包含的、處於已設置狀態的每個位的索引,在結果中會包含這些索引的十進製表示形式。這些索引是按從低到高的順序列出的、之間用 "," 分隔(一個逗號加一個空格),並用括號括起來,結果形成了一組整數的常用數學符號。
覆寫 Object
的 toString
方法。
範例:
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
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。