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,但这两种方法对我来说总是非常混乱。我经常把它们混在一起,顺便用错了,因为在我的脑海里,我认为BitSet我Set<boolean>会在哪里使用size().
这就像如果ArrayList返回length()元素的数量并size()返回底层数组的大小。
size()现在,我缺少的方法有什么用例吗?它在任何方面都有用吗?有没有人用过它?对于一些手动操作或类似的东西可能很重要吗?
编辑(经过更多研究)
我意识到BitSet它是在 Java 1.0 中引入的,而包含我们使用的大多数类的 Collections 框架是在 Java 1.2 中引入的。所以基本上在我看来,size()由于遗留原因,它被保留了,并且没有真正的用处。新的 Collection 类没有这样的方法,而一些旧的(Vector例如)有。