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
)。
好像我是在正確的軌道上畢竟。如果有人對這種方法有革命性的使用,我會稍微等一下,但我猜滴答是屬於你的。他們並沒有貶低它,這真是一種恥辱。這會爲我節省寶貴的時間,當使用錯誤的。 –