2011-03-29 61 views
0

示例: 我有一個120位的位集(010 * * 001000 ......)。現在我想修改設置爲0的第4位爲1.如何修改BitSet類對象的各個位

SET(4,TRUE) - 類似這樣的東西。它可以在Java中完成嗎?

我可以通過cov =將bitset轉換爲char []數組,然後更改精確位並再次將其反轉回Bitset,但它使用大量不必要的內存並會妨礙性能。一個例子會很好。 如果需要更多的說明,請通過您的意見告訴我。

回答

5

BitSet API在javadoc中有描述,並且有多個set(...)方法用於設置或清除各個位或位的範圍。

BitSet b = ... 
b.set(4, true); 

閱讀的javadoc,以找出是否您使用索引的權值。 (從零開始計數,從一開始計數)

其實,剛剛閱讀javadoc。

+0

+1「實際上,只是閱讀javadoc」。 – 2011-04-08 07:46:25

0

是的,我們實際上可以做到這一點。 BitSet類提供了設置和清除各個位的方法。

它有不同的參數四套方法輸入 -

1.設置(INT bitIndex處) - 設置在指定的索引爲true在位。

2.set(int bitIndex,boolean value) - 將指定索引處的位設置爲指定值。 3.set(int fromIndex,int toIndex) - 將指定的fromIndex(包含)到指定的toIndex(不包含)中的位設置爲true。 4.set(int fromIndex,int toIndex,boolean value) - 將指定的fromIndex(包含)到指定的toIndex(不包含)中的位設置爲指定的值。

我試圖很快包括一個例子。