Latest web development tutorials

Javaのビットセットクラス

ビットセットクラスは、ビット値を保持するために、アレイの特殊なタイプを作成します。 配列のサイズとのBitSetを増やす必要があります。 このビットベクトル(ビットのベクトル)等と同様に比較します。

これは伝統的なクラスですが、それは完全にJava 2では再設計されました。

BitSetは、次の2つのコンストラクタを定義します。

最初のコンストラクタは、デフォルトのオブジェクトを作成します。

BitSet()

第二の方法は、ユーザーが初期サイズを指定することができます。 すべてのビットが0に初期化されます。


BitSet(int size)

BitSetのメソッドは次のように以下の表に定義されてCloneableインタフェースを実装します:

いいえ。 メソッド説明
1 ボイドと(BitSetのビットセット)
この目標ビット引数ビットセットで設定し、論理演算を実行します。
2 ボイドANDNOT(BitSetのビットセット)
その対応するビットが指定されたBitSetに設定されている、BitSetのビットをすべてクリアします。
3 int型のカーディナリティ()
trueに設定されたこのBitSetのビットを数を返します。
4 明確無効()
このBitSetのビットをすべてfalseに。
5 ボイドクリア(int型のインデックス)
falseにインデックスで指定されたビット。
6 ボイドクリア(int型のstartIndex、int型endIndexに)
(含まれておりません)ビットが偽の範囲に設定されている指定されたtoIndex(包括的)指定されたfromIndex。
7 オブジェクトのクローン()
このたBitSetをコピーして、同等な新しいBitSetを生成します。
8 ブール等号(ビットセットオブジェクト)
指定されたオブジェクトに対するこのオブジェクトが比較されます。
9 ボイドフリップ(int型のインデックス)
補体の現在の値に指定されたインデックスのビット。
10 ボイドフリップ(int型のstartIndex、int型endIndexに)
指定されたfromIndex(包括的)、補体の現在の値の範囲内の各ビットのために指定されたtoIndex(含まれていません)へ。
11 ブールのget(int型のインデックス)
指定されたインデックスのビット値を返します。
12 たBitSetのget(int型のstartIndex、int型endIndexに)
な新しいBitSet、(含まれていない)たtoIndexに(包括的)fromIndexのから成るこのBitSetの範囲内の位置を返します。
13 int型のhashCode()
このビットセットのハッシュコード値を返します。
14 ブール交差(BitSetのビットセット)
指定されたBitSetがtrueに設定された任意のビットを有し、そしてこのBitSetの中でもtrueに設定された場合は、チャーを返します。
15 ブールのisEmpty()
このBitSetクラスがtrueに設定されないビットが含まれていない場合は、チャーを返します。
16 int型の長さ()
最上位セットビットに1を足したのBitSet指数:このBitSetの「論理サイズ」の戻り値。
17 int型nextClearBit(int型のstartIndex)
最初のインデックスが指定されたインデックス開始インデックス日以降に発生した偽ビットに設定されて返します。
18 int型nextSetBit(int型のstartIndex)
最初のビットが指定したインデックス開始インデックス日以降に発生した真のインデックスに設定されて返します。
19 空隙または(BitSetのビットセット)
このビットは、ビットのセットのパラメータを使用して設定するか、論理演算を実行します。
20 無効セット(int型のインデックス)
指定されたインデックスのビットをtrueに設定されています。
21 無効セット(int型のインデックス、ブールV)
指定された値に指定されたインデックスのビット。
22 無効セット(int型のstartIndex、int型endIndexに)
(含まれておりません)ビットが真の範囲に設定されている指定されたtoIndex(包括的)指定されたfromIndex。
23 無効セット(int型のstartIndex、int型endIndexに、ブールV)
指定されたfromIndexが指定されたtoIndex(包括的)(含まれない)ビットが指定された値の範囲内に設定されています。
24 int型のサイズ()
BitSetクラスは、スペースビットのビット値の実際の使用を表して返します。
25 文字列のtoString()
このビットセットの文字列表現を返します。
26 ボイドのxor(BitSetのビットセット)
ビットセットパラメータで設定このビットが論理XOR演算を実行します。

次のプログラムは、このデータ構造は、いくつかのメソッドをサポートして示しています。

import java.util.BitSet;

public class BitSetDemo {

  public static void main(String args[]) {
     BitSet bits1 = new BitSet(16);
     BitSet bits2 = new BitSet(16);
      
     // set some bits
     for(int i=0; i<16; i++) {
        if((i%2) == 0) bits1.set(i);
        if((i%5) != 0) bits2.set(i);
     }
     System.out.println("Initial pattern in bits1: ");
     System.out.println(bits1);
     System.out.println("\nInitial pattern in bits2: ");
     System.out.println(bits2);

     // AND bits
     bits2.and(bits1);
     System.out.println("\nbits2 AND bits1: ");
     System.out.println(bits2);

     // OR bits
     bits2.or(bits1);
     System.out.println("\nbits2 OR bits1: ");
     System.out.println(bits2);

     // XOR bits
     bits2.xor(bits1);
     System.out.println("\nbits2 XOR bits1: ");
     System.out.println(bits2);
  }
}

次のような結果をコンパイルした上記の例は次のとおりです。

Initial pattern in bits1:
{0, 2, 4, 6, 8, 10, 12, 14}

Initial pattern in bits2:
{1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14}

bits2 AND bits1:
{2, 4, 6, 8, 12, 14}

bits2 OR bits1:
{0, 2, 4, 6, 8, 10, 12, 14}

bits2 XOR bits1:
{}