W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
一個(gè)Bitset類創(chuàng)建一種特殊類型的數(shù)組來保存位值。BitSet中數(shù)組大小會(huì)隨需要增加。這和位向量(vector of bits)比較類似。
這是一個(gè)傳統(tǒng)的類,但它在Java 2中被完全重新設(shè)計(jì)。
BitSet定義了兩個(gè)構(gòu)造方法。
第一個(gè)構(gòu)造方法創(chuàng)建一個(gè)默認(rèn)的對(duì)象:
BitSet()
第二個(gè)方法允許用戶指定初始大小。所有位初始化為0。
BitSet(int size)
BitSet中實(shí)現(xiàn)了Cloneable接口中定義的方法如下表所列:
序號(hào) | 方法描述 |
---|---|
1 | void and(BitSet bitSet) 對(duì)此目標(biāo)位 set 和參數(shù)位 set 執(zhí)行邏輯與操作。 |
2 | void andNot(BitSet bitSet) 清除此 BitSet 中所有的位,其相應(yīng)的位在指定的 BitSet 中已設(shè)置。 |
3 | int cardinality( ) 返回此 BitSet 中設(shè)置為 true 的位數(shù)。 |
4 | void clear( ) 將此 BitSet 中的所有位設(shè)置為 false。 |
5 | void clear(int index) 將索引指定處的位設(shè)置為 false。 |
6 | void clear(int startIndex, int endIndex) 將指定的 fromIndex(包括)到指定的 toIndex(不包括)范圍內(nèi)的位設(shè)置為 false。 |
7 | Object clone( ) 復(fù)制此 BitSet,生成一個(gè)與之相等的新 BitSet。 |
8 | boolean equals(Object bitSet) 將此對(duì)象與指定的對(duì)象進(jìn)行比較。 |
9 | void flip(int index) 將指定索引處的位設(shè)置為其當(dāng)前值的補(bǔ)碼。 |
10 | void flip(int startIndex, int endIndex) 將指定的 fromIndex(包括)到指定的 toIndex(不包括)范圍內(nèi)的每個(gè)位設(shè)置為其當(dāng)前值的補(bǔ)碼。 |
11 | boolean get(int index) 返回指定索引處的位值。 |
12 | BitSet get(int startIndex, int endIndex) 返回一個(gè)新的 BitSet,它由此 BitSet 中從 fromIndex(包括)到 toIndex(不包括)范圍內(nèi)的位組成。 |
13 | int hashCode( ) 返回此位 set 的哈希碼值。 |
14 | boolean intersects(BitSet bitSet) 如果指定的 BitSet 中有設(shè)置為 true 的位,并且在此 BitSet 中也將其設(shè)置為 true,則返回 ture。 |
15 | boolean isEmpty( ) 如果此 BitSet 中沒有包含任何設(shè)置為 true 的位,則返回 ture。 |
16 | int length( ) 返回此 BitSet 的"邏輯大小":BitSet 中最高設(shè)置位的索引加 1。 |
17 | int nextClearBit(int startIndex) 返回第一個(gè)設(shè)置為 false 的位的索引,這發(fā)生在指定的起始索引或之后的索引上。 |
18 | int nextSetBit(int startIndex) 返回第一個(gè)設(shè)置為 true 的位的索引,這發(fā)生在指定的起始索引或之后的索引上。 |
19 | void or(BitSet bitSet) 對(duì)此位 set 和位 set 參數(shù)執(zhí)行邏輯或操作。 |
20 | void set(int index) 將指定索引處的位設(shè)置為 true。 |
21 | void set(int index, boolean v) 將指定索引處的位設(shè)置為指定的值。 |
22 | void set(int startIndex, int endIndex) 將指定的 fromIndex(包括)到指定的 toIndex(不包括)范圍內(nèi)的位設(shè)置為 true。 |
23 | void set(int startIndex, int endIndex, boolean v) 將指定的 fromIndex(包括)到指定的 toIndex(不包括)范圍內(nèi)的位設(shè)置為指定的值。 |
24 | int size( ) 返回此 BitSet 表示位值時(shí)實(shí)際使用空間的位數(shù)。 |
25 | String toString( ) 返回此位 set 的字符串表示形式。 |
26 | void xor(BitSet bitSet) 對(duì)此位 set 和位 set 參數(shù)執(zhí)行邏輯異或操作。 |
下面的程序說明這個(gè)數(shù)據(jù)結(jié)構(gòu)支持的幾個(gè)方法:
import java.util.BitSet;
public class BitSetDemo {
public static void main(String args[]) {
BitSet bits1 = new BitSet(16);
BitSet bits2 = new BitSet(16);
// set some bits
for(int i=0; i<16; i++) { if((i%2) == 0) bits1.set(i); if((i%5) != 0) bits2.set(i); } System.out.println("Initial pattern in bits1: "); System.out.println(bits1); System.out.println("\nInitial pattern in bits2: "); System.out.println(bits2); // AND bits bits2.and(bits1); System.out.println("\nbits2 AND bits1: "); System.out.println(bits2); // OR bits bits2.or(bits1); System.out.println("\nbits2 OR bits1: "); System.out.println(bits2); // XOR bits bits2.xor(bits1); System.out.println("\nbits2 XOR bits1: "); System.out.println(bits2); } }
以上實(shí)例編譯運(yùn)行結(jié)果如下:
Initial pattern in bits1:
{0, 2, 4, 6, 8, 10, 12, 14}
Initial pattern in bits2:
{1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14}
bits2 AND bits1:
{2, 4, 6, 8, 12, 14}
bits2 OR bits1:
{0, 2, 4, 6, 8, 10, 12, 14}
bits2 XOR bits1:
{}
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: