ここでの Java リファレンスは、ブール型は「ビット」の情報で表されますが、正確に定義されたサイズを持たないことを示しています。対照的に、他のタイプは、サイズが定義されていることを示唆しているようです。たとえば、intは 32 ビットであり、話は終わりです。
BitSetの仕様を見ると、ブール値で構成されていることがわかります。上記の参照によると、これはBitSetの「サイズ」が定義されていないことを示唆しているようです。結局のところ、ブール値で構成されています。案の定、ドキュメントには次のように指定されています。
サイズはビット セットの実装に関連するため、実装によって変わる可能性があることに注意してください。
私の質問は、正確に定義された別のデータ型を使用してBitSetを実装しないのはなぜですか? たとえば、1 バイトを使用する場合、8 ビットのサイズを保証でき、サイズが思ったものと異なる可能性があるというあいまいな感覚はありません。サイズが 8 で割り切れる必要があるのは事実ですが、少なくともこの方法の方がサイズが決定論的であるように見えます。
特定のメモリ容量を絶対に超えることができないシステムがある場合、サイズに関して正確なBitSet実装を使用すると便利です。