クラスのsize()
メソッドのユースケースはありますか?java.util.BitSet
つまり、JavaDoc は実装に依存していると明確に述べており、内部long[]
ストレージのサイズをビット単位で返します。それが言っていることから、より高いインデックスでビットを設定することはできないと結論付けることができますが、それsize()
は真実ではありません.BitSet
は自動的に成長する可能性があります:
BitSet myBitSet = new BitSet();
System.out.println(myBitSet.size()); // prints "64"
myBitSet.set(768);
System.out.println(myBitSet.size()); // prints "832"
私が人生で経験したすべての出会いでBitSet
、私は常に使用したいと思っていました。これlength()
は、の論理サイズを返すためですBitSet
。
BitSet myBitSet = new BitSet();
System.out.println(myBitSet.length()); // prints "0"
myBitSet.set(768);
System.out.println(myBitSet.length()); // prints "769"
過去 6 年間 Java をプログラミングしてきましたが、この 2 つの方法は常に非常に混乱します。私はしばしばそれらを混同して、ついでに間違ったものを使用してBitSet
しまいSet<boolean>
ますsize()
。
要素の数を返し、基になる配列のサイズをArrayList
返すようなものです。length()
size()
さて、size()
私が見逃しているメソッドのユースケースはありますか? それは何らかの形で役に立ちますか?何かに使ったことある人いますか?手動でビットをいじったり、同様のことをしたりするのに重要でしょうか?
編集(さらに調査した後)
は Java 1.0BitSet
で導入されましたが、私たちが使用するほとんどのクラスを含むコレクション フレームワークは Java 1.2 で導入されました。size()
したがって、基本的には、レガシーの理由で保持されているように思われ、実際には使用されません。新しい Collection クラスにはそのようなメソッドがありませんが、一部の古いもの (Vector
など) にはあります。