- すべての実装されたインタフェース:
- Serializable,- Cloneable
public class BitSet extends Object implements Cloneable, Serializable
boolean値を持ちます。 BitSetのビットには、負でない整数のインデックスが付けられます。 インデックスが付けられた個別のビットは、試験したり、設定したり、クリアしたりできます。 また、論理積、包含的論理和、および排他的論理和の演算を行うと、あるBitSetを使って別のBitSetの内容を変更できます。 
 デフォルトでは、セットのすべてのビットは初期値としてfalseを持ちます。
 
ビット・セットの、現在のサイズは、そのビット・セットによって現在使用されているスペースのビット数です。 このサイズはビット・セットの実装と関連するので、サイズは実装によって変わる場合があります。 ビット・セットの長さはビット・セットの論理的な長さと関連し、実装とは関係なく定義されます。
特に明記されていないかぎり、nullパラメータをBitSetのメソッドに渡すと、NullPointerExceptionがスローされます。
 
BitSetが、外部の同期化を行わずにマルチ・スレッドを使用するのは安全ではありません。
- 導入されたバージョン:
- 1.0
- 関連項目:
- 直列化された形式
- 
コンストラクタのサマリー
- 
メソッドのサマリー修飾子と型 メソッド 説明 voidand(BitSet set)ターゲット・ビット・セットと引数ビット・セットの論理積を取ります。voidandNot(BitSet set)対応するビットが、指定されたBitSet内に設定されているこのBitSet内のすべてのビットをクリアします。intcardinality()このBitSetで、trueに設定されたビットの数を返します。voidclear()このBitSet内のビットをすべてfalseに設定します。voidclear(int bitIndex)インデックスで指定されたビットをfalseに設定します。voidclear(int fromIndex, int toIndex)指定されたfromIndex(これを含む)から指定されたtoIndex(これを含まない)までのビットを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()このビット・セットのハッシュ・コード値を返します。booleanintersects(BitSet set)このBitSetでもtrueに設定された、true設定のビットが、指定されたBitSetにある場合、trueを返します。booleanisEmpty()このBitSetにtrueに設定されたビットが含まれていない場合は、trueを返します。intlength()このBitSetの「論理サイズ」、つまりBitSetの最上位セット・ビットのインデックスに1を加えた値を返します。intnextClearBit(int fromIndex)指定された開始インデックス時、またはそのインデックス後に生じる、falseに設定された最初のビットのインデックスを返します。intnextSetBit(int fromIndex)指定された開始インデックス時、またはそのインデックス後に生じる、trueに設定された最初のビットのインデックスを返します。voidor(BitSet set)ビット・セットとビット・セット引数の論理和を取ります。intpreviousClearBit(int fromIndex)指定された開始インデックス時、またはそのインデックス前に生じる、falseに設定されたもっとも近いビットのインデックスを返します。intpreviousSetBit(int fromIndex)指定された開始インデックス時、またはそのインデックス前に生じる、trueに設定されたもっとも近いビットのインデックスを返します。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でビット値を表すために実際に使用しているビットの数を返します。IntStreamstream()このBitSetにビットが設定状態で保持されているインデックスのストリームを返します。byte[]toByteArray()このビット・セット内のすべてのビットを含む新しいバイト配列を返します。long[]toLongArray()このビット・セット内のすべてのビットを含む新しいlong配列を返します。StringtoString()ビット・セットの文字列表現を返します。static BitSetvalueOf(byte[] bytes)指定されたバイト配列内のすべてのビットを含む新しいビット・セットを返します。static BitSetvalueOf(long[] longs)指定されたlong配列内のすべてのビットを含む新しいビット・セットを返します。static BitSetvalueOf(ByteBuffer bb)指定されたbyteバッファ内の、その位置から上限までのすべてのビットを含む新しいビット・セットを返します。static BitSetvalueOf(LongBuffer lb)指定されたlongバッファ内の、その位置から上限までのすべてのビットを含む新しいビット・セットを返します。voidxor(BitSet set)ビット・セットとビット・セット引数の排他的論理和を取ります。
- 
コンストラクタの詳細- 
BitSetpublic BitSet()新規ビット・セットを作成します。 ビットの初期値はすべてfalseです。
- 
BitSetpublic BitSet(int nbits)0-nbits-1の範囲のインデックスを持つビットを明示的に表すために十分な初期サイズを持つビット・セットを作成します。 ビットの初期値はすべてfalseです。- パラメータ:
- nbits- ビット・セットの初期サイズ
- 例外:
- NegativeArraySizeException- 指定された初期サイズが負の場合
 
 
- 
- 
メソッドの詳細- 
valueOfpublic static BitSet valueOf(long[] longs)指定されたlong配列内のすべてのビットを含む新しいビット・セットを返します。より正確には、 
 すべてのn < 64 * longs.lengthに対してBitSet.valueOf(longs).get(n)==((longs[n/64] & (1L<<(n%64)))!= 0)となります。このメソッドは、 BitSet.valueOf(LongBuffer.wrap(longs))と同等です。- パラメータ:
- longs- 新規ビット・セットの初期ビットとして使用されるビット・シーケンスのリトル・エンディアン表現を含むlong配列
- 戻り値:
- long配列内のすべてのビットを含むBitSet
- 導入されたバージョン:
- 1.7
 
- 
valueOfpublic static BitSet valueOf(LongBuffer lb)指定されたlongバッファ内の、その位置から上限までのすべてのビットを含む新しいビット・セットを返します。より正確には、 
 すべてのn < 64 * lb.remaining()に対してBitSet.valueOf(lb).get(n)==((lb.get(lb.position()+n/64)& (1L<<(n%64)))!= 0)となります。longバッファはこのメソッドによって変更されず、このバッファへの参照はビット・セットによって保存されません。 - パラメータ:
- lb- 新規ビット・セットの初期ビットとして使用される、その位置から上限までのビット・シーケンスのリトル・エンディアン表現を含むlongバッファ
- 戻り値:
- 指定された範囲のバッファ内のすべてのビットを含むBitSet
- 導入されたバージョン:
- 1.7
 
- 
valueOfpublic static BitSet valueOf(byte[] bytes)指定されたバイト配列内のすべてのビットを含む新しいビット・セットを返します。より正確には、 
 すべてのn < 8 * bytes.lengthに対してBitSet.valueOf(bytes).get(n)==((bytes[n/8] & (1<<(n%8)))!= 0)となります。このメソッドは、 BitSet.valueOf(ByteBuffer.wrap(bytes))と同等です。- パラメータ:
- bytes- 新規ビット・セットの初期ビットとして使用されるビット・シーケンスのリトル・エンディアン表現を含むバイト配列
- 戻り値:
- バイト配列内のすべてのビットを含むBitSet
- 導入されたバージョン:
- 1.7
 
- 
valueOfpublic static BitSet valueOf(ByteBuffer bb)指定されたbyteバッファ内の、その位置から上限までのすべてのビットを含む新しいビット・セットを返します。より正確には、 
 すべてのn < 8 * bb.remaining()に対してBitSet.valueOf(bb).get(n)==((bb.get(bb.position()+n/8)& (1<<(n%8)))!= 0)となります。byteバッファはこのメソッドによって変更されず、このバッファへの参照はビット・セットによって保存されません。 - パラメータ:
- bb- 新規ビット・セットの初期ビットとして使用される、その位置から上限までのビット・シーケンスのリトル・エンディアン表現を含むbyteバッファ
- 戻り値:
- 指定された範囲のバッファ内のすべてのビットを含むBitSet
- 導入されたバージョン:
- 1.7
 
- 
toByteArraypublic byte[] toByteArray()このビット・セット内のすべてのビットを含む新しいバイト配列を返します。より正確には、 byte[] bytes = s.toByteArray();の場合
 すべてのn < 8 * bytes.lengthに対してbytes.length ==(s.length()+7)/8およびs.get(n)==((bytes[n/8] & (1<<(n%8)))!= 0)となります。- 戻り値:
- このビット・セットのすべてのビットのリトル・エンディアン表現を含むバイト配列
- 導入されたバージョン:
- 1.7
 
- 
toLongArraypublic long[] toLongArray()このビット・セット内のすべてのビットを含む新しいlong配列を返します。より正確には、 long[] longs = s.toLongArray();の場合
 すべてのn < 64 * longs.lengthに対してlongs.length ==(s.length()+63)/64およびs.get(n)==((longs[n/64] & (1L<<(n%64)))!= 0)となります。- 戻り値:
- このビット・セットのすべてのビットのリトル・エンディアン表現を含むlong配列
- 導入されたバージョン:
- 1.7
 
- 
flippublic void flip(int bitIndex)現在値の補数に指定されたインデックスのビットを設定します。- パラメータ:
- bitIndex- 反転するビットのインデックス
- 例外:
- IndexOutOfBoundsException- 指定されたインデックスが負の値の場合
- 導入されたバージョン:
- 1.4
 
- 
flippublic void flip(int fromIndex, int toIndex)指定されたfromIndex(これを含む)から指定されたtoIndex(これを含まない)までの各ビットをその現在値の補数に設定します。- パラメータ:
- fromIndex- 反転する最初のビットのインデックス
- toIndex- 反転する最後のビットの後ろのインデックス
- 例外:
- IndexOutOfBoundsException-- fromIndexが負の値の場合、- toIndexが負の値の場合、あるいは- fromIndexが- toIndexよりも大きい場合
- 導入されたバージョン:
- 1.4
 
- 
setpublic void set(int bitIndex)指定されたインデックスのビットをtrueに設定します。- パラメータ:
- bitIndex- ビット・インデックス
- 例外:
- IndexOutOfBoundsException- 指定されたインデックスが負の値の場合
- 導入されたバージョン:
- 1.0
 
- 
setpublic void set(int bitIndex, boolean value)指定されたインデックスのビットを指定された値に設定します。- パラメータ:
- bitIndex- ビット・インデックス
- value- 設定されるboolean値
- 例外:
- IndexOutOfBoundsException- 指定されたインデックスが負の値の場合
- 導入されたバージョン:
- 1.4
 
- 
setpublic void set(int fromIndex, int toIndex)指定されたfromIndex(これを含む)から指定されたtoIndex(これを含まない)までのビットをtrueに設定します。- パラメータ:
- fromIndex- 設定する最初のビットのインデックス
- toIndex- 設定される最後のビットの後ろのインデックス
- 例外:
- IndexOutOfBoundsException-- fromIndexが負の値の場合、- toIndexが負の値の場合、あるいは- fromIndexが- toIndexよりも大きい場合
- 導入されたバージョン:
- 1.4
 
- 
setpublic void set(int fromIndex, int toIndex, boolean value)指定されたfromIndex(これを含む)から指定されたtoIndex(これを含まない)までのビットを指定された値に設定します。- パラメータ:
- fromIndex- 設定する最初のビットのインデックス
- toIndex- 設定される最後のビットの後ろのインデックス
- value- 選択されたビットを設定する値
- 例外:
- IndexOutOfBoundsException-- fromIndexが負の値の場合、- toIndexが負の値の場合、あるいは- fromIndexが- toIndexよりも大きい場合
- 導入されたバージョン:
- 1.4
 
- 
clearpublic void clear(int bitIndex)インデックスで指定されたビットをfalseに設定します。- パラメータ:
- bitIndex- クリアするビットのインデックス
- 例外:
- IndexOutOfBoundsException- 指定されたインデックスが負の値の場合
- 導入されたバージョン:
- 1.0
 
- 
clearpublic void clear(int fromIndex, int toIndex)指定されたfromIndex(これを含む)から指定されたtoIndex(これを含まない)までのビットをfalseに設定します。- パラメータ:
- fromIndex- クリアする最初のビットのインデックス
- toIndex- クリアされる最後のビットの後ろのインデックス
- 例外:
- IndexOutOfBoundsException-- fromIndexが負の値の場合、- toIndexが負の値の場合、あるいは- fromIndexが- toIndexよりも大きい場合
- 導入されたバージョン:
- 1.4
 
- 
clearpublic void clear()このBitSet内のビットをすべてfalseに設定します。- 導入されたバージョン:
- 1.4
 
- 
getpublic boolean get(int bitIndex)指定されたインデックスを持つビットの値を返します。 このBitSetにbitIndexのインデックスを持つビットが設定されている場合、値はtrueです。そうでない場合はfalseです。- パラメータ:
- bitIndex- ビット・インデックス
- 戻り値:
- 指定されたインデックスを持つビットの値
- 例外:
- IndexOutOfBoundsException- 指定されたインデックスが負の値の場合
 
- 
getpublic BitSet get(int fromIndex, int toIndex)このBitSetからのビットで構成される新規BitSetをfromIndex(これを含む)からtoIndex(これを含まない)まで返します。- パラメータ:
- fromIndex- 組み込む最初のビットのインデックス
- toIndex- 組み込む最後のビットの後ろのインデックス
- 戻り値:
- このBitSetの範囲からの新規BitSet
- 例外:
- IndexOutOfBoundsException-- fromIndexが負の値の場合、- toIndexが負の値の場合、あるいは- fromIndexが- toIndexよりも大きい場合
- 導入されたバージョン:
- 1.4
 
- 
nextSetBitpublic 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 if (i == Integer.MAX_VALUE) { break; // or (i+1) would overflow } }- パラメータ:
- fromIndex- チェックを開始する位置のインデックス(これを含む)
- 戻り値:
- 次のセット・ビットのインデックス。そのようなビットが存在しない場合は-1
- 例外:
- IndexOutOfBoundsException- 指定されたインデックスが負の値の場合
- 導入されたバージョン:
- 1.4
 
- 
nextClearBitpublic int nextClearBit(int fromIndex)指定された開始インデックス時、またはそのインデックス後に生じる、falseに設定された最初のビットのインデックスを返します。- パラメータ:
- fromIndex- チェックを開始する位置のインデックス(これを含む)
- 戻り値:
- 次のクリア・ビットのインデックス
- 例外:
- IndexOutOfBoundsException- 指定されたインデックスが負の値の場合
- 導入されたバージョン:
- 1.4
 
- 
previousSetBitpublic int previousSetBit(int fromIndex)指定された開始インデックス時、またはそのインデックス前に生じる、trueに設定されたもっとも近いビットのインデックスを返します。 そのようなビットが存在しない場合、または開始インデックスとして-1が指定された場合は、-1が返されます。BitSet内のtrueビットに対して反復処理を実行する場合は、次のループを使用します。for (int i = bs.length(); (i = bs.previousSetBit(i-1)) >= 0; ) { // operate on index i here }- パラメータ:
- fromIndex- チェックを開始する位置のインデックス(これを含む)
- 戻り値:
- 前のセット・ビットのインデックス。そのようなビットが存在しない場合は-1
- 例外:
- IndexOutOfBoundsException- 指定されたインデックスが次より小さい場合- -1
- 導入されたバージョン:
- 1.7
 
- 
previousClearBitpublic int previousClearBit(int fromIndex)指定された開始インデックス時、またはそのインデックス前に生じる、falseに設定されたもっとも近いビットのインデックスを返します。 そのようなビットが存在しない場合、または開始インデックスとして-1が指定された場合は、-1が返されます。- パラメータ:
- fromIndex- チェックを開始する位置のインデックス(これを含む)
- 戻り値:
- 前のクリア・ビットのインデックス。そのようなビットが存在しない場合は-1
- 例外:
- IndexOutOfBoundsException- 指定されたインデックスが次より小さい場合- -1
- 導入されたバージョン:
- 1.7
 
- 
lengthpublic int length()このBitSetの「論理サイズ」、つまりBitSetの最上位セット・ビットのインデックスに1を加えた値を返します。BitSetにセット・ビットがない場合はゼロを返します。- 戻り値:
- BitSetの論理サイズ
- 導入されたバージョン:
- 1.2
 
- 
isEmptypublic boolean isEmpty()このBitSetにtrueに設定されたビットが含まれていない場合は、trueを返します。- 戻り値:
- このBitSetが空かどうかを示すboolean型
- 導入されたバージョン:
- 1.4
 
- 
intersectspublic boolean intersects(BitSet set)このBitSetでもtrueに設定された、true設定のビットが、指定されたBitSetにある場合、trueを返します。- パラメータ:
- set- 交差する- BitSet
- 戻り値:
- このBitSetが指定されたBitSetと交差するかどうかを示すboolean型
- 導入されたバージョン:
- 1.4
 
- 
カーディナリティpublic int cardinality()このBitSetで、trueに設定されたビットの数を返します。- 戻り値:
- このBitSetで、trueに設定されたビットの数
- 導入されたバージョン:
- 1.4
 
- 
andpublic void and(BitSet set)ターゲット・ビット・セットと引数ビット・セットの論理積を取ります。 このビット・セットの各ビットの初期値がtrueで、ビット・セット引数の対応するビットの初期値もtrueの場合にかぎり、このビット・セットが変更され、その各ビットの値がtrueになります。- パラメータ:
- set- ビット・セット
 
- 
orpublic void or(BitSet set)ビット・セットとビット・セット引数の論理和を取ります。 このビット・セットのビットの値がtrueであったか、ビット・セット引数の対応するビットの値がtrueである場合にかぎり、このビット・セットが変更され、そのビットの値がtrueになります。- パラメータ:
- set- ビット・セット
 
- 
xorpublic void xor(BitSet set)ビット・セットとビット・セット引数の排他的論理和を取ります。 次のいずれかの条件が成り立つ場合にかぎり、このビット・セットが変更され、そのビットの値がtrueになります。- このビットの初期値がtrueで、引数の対応するビットの値がfalseである。
- このビットの初期値がfalseで、引数の対応するビットの値がtrueである。
 - パラメータ:
- set- ビット・セット
 
- このビットの初期値が
- 
andNotpublic void andNot(BitSet set)対応するビットが、指定されたBitSet内に設定されているこのBitSet内のすべてのビットをクリアします。- パラメータ:
- set- この- BitSetをマスクするための- BitSet
- 導入されたバージョン:
- 1.2
 
- 
hashCodepublic int hashCode()このビット・セットのハッシュ・コード値を返します。 ハッシュ・コードは、このBitSet内に設定されているビットによってのみ決まります。ハッシュ・コードは、次の計算の結果として定義されます。 
 ビットの設定が変わると、ハッシュ・コードは変更されます。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); }- オーバーライド:
- hashCode、クラス:- Object
- 戻り値:
- このビット・セットのハッシュ・コード値
- 関連項目:
- Object.equals(java.lang.Object),- System.identityHashCode(java.lang.Object)
 
- 
sizepublic int size()このBitSetでビット値を表すために実際に使用しているビットの数を返します。 このセットで最大の要素は「サイズ」で、これが第1の要素です。- 戻り値:
- ビット・セットに現在あるビットの数
 
- 
equalspublic boolean equals(Object obj)このオブジェクトと指定されたオブジェクトを比較します。 引数がnullではなく、このビット・セットとまったく同じビット・セットがtrueに設定されているBitSetオブジェクトである場合にのみ、結果はtrueになります。 つまり、負でないint型のインデックスkに対して、((BitSet)obj).get(k) == this.get(k) が成り立たなければいけません。 2つのビット・セットの現在のサイズは比較されません。
- 
clonepublic Object clone()このBitSetをクローニングして、それと同等の新しいBitSetを作成します。 このビット・セットの複製は、このビット・セットとまったく同じtrueのビットを持ちます。
- 
toStringpublic String toString()ビット・セットの文字列表現を返します。 このBitSetでビットが設定状態で保持されているインデックスごとに、そのインデックスの10進表現が結果に含まれます。 こうしたインデックスは、最下位から最上位の順序で並べられ、「, 」(カンマとスペース)で区切って中カッコで囲まれます。このため、整数セットの通常の数値表記になります。例: BitSet drPepper = new BitSet(); これで、drPepper.toString()は「{}」を返します。drPepper.set(2); これで、drPepper.toString()は「{2}」を返します。drPepper.set(4); drPepper.set(10); これで、drPepper.toString()は「{2, 4, 10}」を返します。
- 
streampublic IntStream stream()このBitSetにビットが設定状態で保持されているインデックスのストリームを返します。 インデックスは、最下位から最上位の順序で返されます。 そのストリームのサイズは、設定状態にあるビットの数であり、cardinality()メソッドで返される値に等しくなります。ストリームは、ターミナル・ストリーム操作が開始されるときにこのビット・セットにバインドされます((具体的には、ストリームのスプライテータはlate-binding))。 その操作中にビット・セットが変更された場合、結果は未定義です。 - 戻り値:
- 設定されたインデックスを表す整数のストリーム
- 導入されたバージョン:
- 1.8
 
 
-