BitSet: これはバイト セットであり、整数を表したり、2 つのセットの交差や和集合などの演算を実行したりするために使用できます。
コンピューターのストレージの最小単位はビット、Java プログラムで使用する最小単位はバイトであることがわかっています。両者の変換関係は 1Byte=8bit です。 BitSet は、ビットの位置に基づいて整数データのサイズを表します。例: 16 は 16 番目の位置にあり、5 は 5 番目の位置にあるため、次の BitSet はセット {5,16} を表すことができます
BitSet のソース コードを分析すると、BitSet が 2 つのコンストラクターを提供していることがわかります。 1 つはパラメーターなしの BitSet() で、もう 1 つは BitSet(int nbits) です。パラメーターなしでコンストラクターを使用して BitSet オブジェクトを作成すると、デフォルトの長さ 64 ビットのオブジェクトが作成され、データ サイズはこのオブジェクトが表現できる値は 1 ~ 64 ですが、BitSet は自己増加するため、64 より大きいデータを入れても問題ありません。最大値は Integer.MAX_VALUE=2147483647 です。
たとえば、上記の集合と {2,23,48} の和集合が見つかると、ビットコード化された OR 演算になります。
00000000 00000000 00000000 00000000 00000000 00000000 10000000 00100000 セット {5,16}
00000000 00000000 100000 00 00000000 00000000 01000000 00000000 00000010 集合 {2,23,48}
の OR 演算の結果は
00000000 00000000 10000000 00000000 00000 000 01000000 10000000 00100010 したがって、結果は {2,5,16,23,48} になります
その他のより大きな数値は、より長いビットコードにすぎません。
注:
最大桁数で BitSet セットを作成すると、BitSet bitSet = new BitSet(Integer.MAX_VALUE);
次のエラーが報告されます
スレッド "main" java で例外が発生します。 lang.OutOfMemoryError: Java ヒープ スペース
at java.util.BitSet.initWords(BitSet.java:144)
at java.util.BitSet.
at Test.main(Test. java:10)
これは Java ヒープ領域が不十分であることを示しており、次のように変更できます:
java.lang.OutOfMemoryError のその他のレポート: Java ヒープ領域エラーもこの方法で変更できます