BitSetクラスをサブクラス化して、いくつかのメソッドを追加しました。その1つは「フォールド」と呼ばれます。BitSetを2つに分割し、それらをまたはで「結合」します。(情報密度を高める)
これは機能しますが、折りたたまれたビットセットのサイズ(1024)は元のサイズのままです。
コード:
BitSet firstHalf;
BitSet secondHalf;
for(int i = nrOfTimes; i > 0; i-- ){
firstHalf = this.get(0, this.size()/2);
secondHalf = this.get(this.size()/2, this.size());
firstHalf.or(secondHalf);
this.clear();
this.or(firstHalf);
}
希望する長さの新しいビットセットを返すことはおそらく実行可能ですが、反復ごとに新しい小さいビットセットを作成することによってのみ可能ですが、それでも再割り当てする必要があります(myClass = myClass.fold())。折りたたむと元のバージョンには興味がありません。アイデアは、スペース(メモリとDB)を節約することです。
現在のビットセットのサイズを減らす方法はありますか?(私が見ていない「トリック」?)