|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.util.BitSet
このクラスは、必要に応じて大きくなるビットベクトルを実装します。ビットセットの各要素は、boolean
値を持ちます。BitSet
のビットには、負でない整数のインデックスが付けられます。インデックスが付けられた個別のビットは、試験したり、設定したり、クリアしたりできます。また、論理積、包含的論理和、および排他的論理和の演算を行うと、ある BitSet
を使って別の BitSet
の内容を変更できます。
デフォルトでは、セットのすべてのビットは初期値として false
を持ちます。
ビットセットには、現サイズがあります。これは、そのビットセットによって現在使用されているスペースのビット数です。このサイズはビットセットの実装と関連するので、サイズは実装によって変わる場合があります。ビットセットの長さはビットセットの論理的な長さと関連し、実装とは関係なく定義されます。
コンストラクタの概要 | |
BitSet()
新しいビットセットを作成します。 |
|
BitSet(int nbits)
0 〜 nbits-1 の範囲のインデックスを持つビットを明示的に表すために十分な初期サイズを持つビットセットを作成します。 |
メソッドの概要 | |
void |
and(BitSet set)
ターゲットビットセットと引数ビットセットの論理積を取ります。 |
void |
andNot(BitSet set)
対応するビットが指定された BitSet に設定されている、BitSet のビットをすべてクリアします。 |
void |
clear(int bitIndex)
インデックスで指定されたビットを false に設定します。 |
Object |
clone()
BitSet を複製することで、同等な新しい BitSet を作成します。 |
boolean |
equals(Object obj)
オブジェクトと指定されたオブジェクトを比較します。 |
boolean |
get(int bitIndex)
指定されたインデックスを持つビットの値を返します。 |
int |
hashCode()
ビットセットのハッシュコード値を返します。 |
int |
length()
BitSet の「論理サイズ」、つまり BitSet の最上位セットビットのインデックスに 1 を加えた値を返します。 |
void |
or(BitSet set)
ビットセットとビットセット引数の論理和を取ります。 |
void |
set(int bitIndex)
インデックスで指定されたビットを true に設定します。 |
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
- ビットセットの初期サイズメソッドの詳細 |
public int length()
BitSet
の「論理サイズ」、つまり BitSet
の最上位セットビットのインデックスに 1 を加えた値を返します。BitSet
の論理サイズpublic void set(int bitIndex)
true
に設定します。bitIndex
- ビットインデックスpublic void clear(int bitIndex)
false
に設定します。bitIndex
- クリアするビットのインデックスpublic void andNot(BitSet set)
BitSet
に設定されている、BitSet
のビットをすべてクリアします。set
- この BitSet
をマスクするための BitSet
public boolean get(int bitIndex)
BitSet
に bitIndex
のインデックスを持つビットが設定されている場合、値は true
です。そうでない場合は false
です。bitIndex
- ビットインデックス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 int hashCode()
BitSet
内に設定されているビットによってのみ決まります。ハッシュコードを計算するアルゴリズムは、次のように記述できます。
たとえば、bits
という long
型整数値の配列に、BitSet
のビットが格納されるとします。そして、k
が負でない値で、
((k>>6) < bits.length) && ((bits[k>>6] & (1L << (bit & 0x3F))) != 0)という式が成り立つ場合に限り、
BitSet
にビット k
が設定されます。この場合、次のように hashCode
メソッドを定義すると、実際のアルゴリズムの正しい実装になります。
public synchronized int hashCode() { long h = 1234; for (int i = bits.length; --i >= 0; ) { h ^= bits[i] * (i + 1); } return (int)((h >> 32) ^ h); }ビットの設定が変わると、ハッシュコード値は変更されます。
このメソッドは、Object
の hashCode
メソッドをオーバーライドします。
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
メソッドをオーバーライドします。
obj
- 比較対象のオブジェクトtrue
、そうでない場合は false
size()
public Object clone()
BitSet
を複製することで、同等な新しい BitSet
を作成します。このビットセットの複製は、このビットセットとまったく同じ true
のビットを持ち、現在のサイズが同じである別のビットセットです。
このメソッドは、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}
」を返します。
|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |