|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.util.BitSet
public class BitSet
このクラスは、必要に応じて大きくなるビットベクトルを実装します。ビットセットの各要素は、boolean
値を持ちます。BitSet
のビットには、負でない整数のインデックスが付けられます。インデックスが付けられた個別のビットは、試験したり、設定したり、クリアしたりできます。また、論理積、包含的論理和、および排他的論理和の演算を行うと、ある BitSet
を使って別の BitSet
の内容を変更できます。
デフォルトでは、セットのすべてのビットは初期値として false
を持ちます。
ビットセットの、現在のサイズは、そのビットセットによって現在使用されているスペースのビット数です。このサイズはビットセットの実装と関連するので、サイズは実装によって変わる場合があります。ビットセットの長さはビットセットの論理的な長さと関連し、実装とは関係なく定義されます。
特に明記されていないかぎり、null パラメータを BitSet
のメソッドに渡すと、NullPointerException
がスローされます。
BitSet
が、外部の同期化を行わずにマルチスレッドを使用するのは安全ではありません。
コンストラクタの概要 | |
---|---|
BitSet()
新規ビットセットを作成します。 |
|
BitSet(int nbits)
0 〜 nbits-1 の範囲のインデックスを持つビットを明示的に表すために十分な初期サイズを持つビットセットを作成します。 |
メソッドの概要 | |
---|---|
void |
and(BitSet 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 (inclusive) から指定された toIndex (exclusive) まで、ビットを false に設定します。 |
Object |
clone()
BitSet を複製することで、同等な新しい BitSet を作成します。 |
boolean |
equals(Object obj)
オブジェクトと指定されたオブジェクトを比較します。 |
void |
flip(int bitIndex)
現在値の補数に指定されたインデックスのビットを設定します。 |
void |
flip(int fromIndex,
int toIndex)
指定された fromIndex (inclusive) から指定された toIndex (exclusive) まで、各ビットをその現在値の補数に設定します。 |
boolean |
get(int bitIndex)
指定されたインデックスを持つビットの値を返します。 |
BitSet |
get(int fromIndex,
int toIndex)
この BitSet からのビットで構成される新規 BitSet を fromIndex (この値を含む) から toIndex (この値を含まない) まで返します。 |
int |
hashCode()
ビットセットのハッシュコード値を返します。 |
boolean |
intersects(BitSet set)
この BitSet でも true に設定された、true 設定のビットが、指定された BitSet にある場合、true を返します。 |
boolean |
isEmpty()
この BitSet に true に設定されたビットが含まれていない場合は、true を返します。 |
int |
length()
BitSet の「論理サイズ」、つまり BitSet の最上位セットビットのインデックスに 1 を加えた値を返します。 |
int |
nextClearBit(int fromIndex)
指定された開始インデックス時、またはそのインデックス後に生じる false に設定された最初のビットのインデックスを返します。 |
int |
nextSetBit(int fromIndex)
指定された開始インデックス時、またはそのインデックス後に生じる true に設定された最初のビットのインデックスを返します。 |
void |
or(BitSet set)
ビットセットとビットセット引数の論理和を取ります。 |
void |
set(int bitIndex)
指定されたインデックスのビットを true に設定します。 |
void |
set(int bitIndex,
boolean value)
指定されたインデックスのビットを指定された値に設定します。 |
void |
set(int fromIndex,
int toIndex)
指定された fromIndex (inclusive) から指定された toIndex (exclusive) まで、ビットを true に設定します。 |
void |
set(int fromIndex,
int toIndex,
boolean value)
指定された fromIndex (inclusive) から指定された toIndex (exclusive) まで、ビットを指定された値に設定します。 |
int |
size()
BitSet でビット値を表すために実際に使用しているビットの数を返します。 |
String |
toString()
ビットセットの文字列表現を返します。 |
void |
xor(BitSet set)
ビットセットとビットセット引数の排他的論理和を取ります。 |
クラス java.lang.Object から継承されたメソッド |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
コンストラクタの詳細 |
---|
public BitSet()
false
です。
public BitSet(int nbits)
0
〜 nbits-1
の範囲のインデックスを持つビットを明示的に表すために十分な初期サイズを持つビットセットを作成します。ビットの初期値はすべて false
です。
nbits
- ビットセットの初期サイズ
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
に設定されたビットが含まれていない場合は、true を返します。
BitSet
が空かどうかを示す boolean 型public boolean intersects(BitSet set)
BitSet
でも true
に設定された、true
設定のビットが、指定された BitSet
にある場合、true を返します。
set
- 交差する BitSet
BitSet
が指定された BitSet
と交差するかどうかを示す boolean 型public int cardinality()
BitSet
で、true に設定されたビットの数を返します。
BitSet
で true に設定されたビットの数public void and(BitSet set)
true
で、ビットセット引数の対応するビットの初期値も true
の場合にかぎり、このビットセットが変更され、その各ビットの値が true
になります。
set
- ビットセットpublic void or(BitSet set)
true
であったか、ビットセット引数の対応するビットの値が true
である場合にかぎり、このビットセットが変更され、そのビットの値が true
になります。
set
- ビットセットpublic void xor(BitSet set)
true
になります。
true
で、引数の対応するビットの値が false
である
false
で、引数の対応するビットの値が true
である
set
- ビットセットpublic void andNot(BitSet set)
BitSet
に設定されている、BitSet
のビットをすべてクリアします。
set
- この BitSet
をマスクするための BitSet
public int hashCode()
BitSet
内に設定されているビットによってのみ決まります。ハッシュコードを計算するアルゴリズムは、次のように記述できます。
たとえば、words
という long
型整数値の配列に、BitSet
のビットが格納されるとします。そして、k
が負でない値で、
((k>>6) < words.length) && ((words[k>>6] & (1L << (bit & 0x3F))) != 0)という式が成り立つ場合にかぎり、
BitSet
にビット 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
でビット値を表すために実際に使用しているビットの数を返します。このセットで最大の要素は「サイズ」で、これが第一要素です。
public boolean equals(Object obj)
null
ではなく、このビットセットとまったく同じ true
のビットのセットを持つ Bitset
オブジェクトである場合にかぎり、結果は true
です。つまり、負でない int
型のインデックス k
に対して、
((BitSet)obj).get(k) == this.get(k)が成り立たなければなりません。2 つのビットセットの現在のサイズは比較されません。
このメソッドは、Object
の equals
メソッドをオーバーライドします。
Object
内の equals
obj
- 比較対象のオブジェクト
true
、そうでない場合は false
size()
public Object clone()
BitSet
を複製することで、同等な新しい BitSet
を作成します。このビットセットの複製は、このビットセットとまったく同じ true
のビットを持ちます。
このメソッドは、Object
の clone
メソッドをオーバーライドします。
Object
内の clone
size()
public String toString()
BitSet
でビットが設定状態で保持されているインデックスごとに、そのインデックスの 10 進表現が結果に含まれます。こうしたインデックスは、最下位から最上位の順序で並べられ、「, 」(コンマとスペース) で区切って中括弧で囲まれます。 このため、整数セットの通常の数値表記になります。
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 Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。