java.util.BitSet
类的size()
方法有用例吗?BitSet的size()方法的原因是什么?
我的意思是 - JavaDoc清楚地说它是依赖于实现的,它以比特的形式返回内部存储的大小。从它说什么,我们可以得出这样的结论,你将不能够设置一个位,且比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中引入,而与大多数我们使用的类集合框架中的Java 1.2中引入的。所以基本上,我认为size()
是因为遗留原因而被保留的,并且没有真正的用途。新的集合类没有这样的方法,而一些旧的(例如Vector
)。
好像我是在正确的轨道上毕竟。如果有人对这种方法有革命性的使用,我会稍微等一下,但我猜滴答是属于你的。他们并没有贬低它,这真是一种耻辱。这会为我节省宝贵的时间,当使用错误的。 –