|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjava.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 をマスクするための BitSetpublic int hashCode()
BitSet 内に設定されているビットによってのみ決まります。ハッシュコードを計算するアルゴリズムは、次のように記述できます。 たとえば、bits という long 型整数値の配列に、BitSet のビットが格納されるとします。そして、k が負でない値で、
((k>>6) < bits.length) && ((bits[k>>6] & (1L << (bit & 0x3F))) != 0)という式が成り立つ場合にかぎり、
BitSet にビット k が設定されます。この場合、次のように hashCode メソッドを定義すると、実際のアルゴリズムの正しい実装になります。
public int hashCode() {
long h = 1234;
for (int i = bits.length; --i >= 0; ) {
h ^= bits[i] * (i + 1);
}
return (int)((h >> 32) ^ h);
}
ビットの設定が変わると、ハッシュコード値は変更されます。
このメソッドは、Object の hashCode メソッドをオーバーライドします。
Object 内の hashCodeObject.equals(java.lang.Object),
Hashtablepublic 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 内の equalsobj - 比較対象のオブジェクト
true、そうでない場合は falsesize()public Object clone()
BitSet を複製することで、同等な新しい BitSet を作成します。このビットセットの複製は、このビットセットとまったく同じ true のビットを持ち、現在のサイズが同じである別のビットセットです。
このメソッドは、Object の clone メソッドをオーバーライドします。
Object 内の clonesize()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 2 Platform Standard Ed. 5.0 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。