|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjava.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 中的 hashCodeObject.equals(java.lang.Object),
Hashtablepublic 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 中的 equalsobj - 要與之比較的物件。
true;否則返回 false。size()public Object clone()
BitSet,產生一個與之相等的新 BitSet。複製得到的是另一個位 set,它與此位 set 有著完全相同的、設置為 true)的位。
覆寫 Object 的 clone 方法。
Object 中的 clonesize()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。