1.1.1.1.7 位集合類BitSet
位集合類中封裝了有關(guān)一組二進(jìn)制數(shù)據(jù)的操作。
我們先來(lái)看一下例8.6 BitSetApp.java。
例8.6 BitSetApp.java
//import java.lang.*;
import java.util.BitSet;
public class BitSetApp{
private static int n=5;
public static void main(String[] args){
BitSet set1=new BitSet(n);
for(int i=0;i
//將set1的各位賦1,即各位均為true
BitSet set2= new BitSet();
set2=(BitSet)set1.clone();
//set2為set1的拷貝
set1.clear(0);
set2.clear(2);
//將set1的第0位set2的第2位清零
System.out.println("The set1 is: "+set1);
//直接將set1轉(zhuǎn)換成字符串輸出,輸出的內(nèi)容是set1中值true所處的位置
//打印結(jié)果為The set1 is:{1,2,3,4}
System.out.println("The hash code of set2 is: "+set2.hashCode());
//打印set2的hashCode
printbit("set1",set1);
printbit("set2",set2);
//調(diào)用打印程序printbit(),打印對(duì)象中的每一個(gè)元素
//打印set1的結(jié)果為The bit set1 is: false true true true true
set1.and(set2);
printbit("set1 and set2",set1);
//完成set1 and set2,并打印結(jié)果
set1.or(set2);
printbit("set1 or set2",set1);
//完成set1 or set2,并打印結(jié)果
set1.xor(set2);
printbit("set1 xor set2",set1);
//完成set1 xor set2,并打印結(jié)果
}
//打印BitSet對(duì)象中的內(nèi)容
public static void printbit(String name,BitSet set){
System.out.print("The bit "+name+" is: ");
for(int i=0;i
System.out.print(set.get(i)+" ");
System.out.println();
}
}
運(yùn)行結(jié)果:
The set1 is: {1, 2, 3, 4}
The hash code of set2 is: 1225
The bit set1 is: false true true true true
The bit set2 is: true true false true true
The bit set1 and set2 is: false true false true true
The bit set1 or set2 is: true true false true true
The bit set1 xor set2 is: false false false false false
程序中使用了BitSet類提供的兩種構(gòu)造方法:
public BitSet();
public BitSet(int n);
參數(shù)n代表所創(chuàng)建的BitSet類的對(duì)象的大小。BitSet類的對(duì)象的大小在必要時(shí)會(huì)由系統(tǒng)自動(dòng)擴(kuò)充。
其它方法:
public void set(int n)
將BitSet對(duì)象的第n位設(shè)置成1。
public void clear(int n)
將BitSet對(duì)象的第n位清零。
public boolean get(int n)
讀取位集合對(duì)象的第n位的值,它獲取的是一個(gè)布爾值。當(dāng)?shù)趎位為1時(shí),返回true;第n位為0時(shí),返回false。
另外,如在程序中所示,當(dāng)把一BitSet類的對(duì)象轉(zhuǎn)換成字符串輸出時(shí),輸出的內(nèi)容是此對(duì)象中true所處的位置。
在BitSet中提供了一組位操作,分別是:
public void and(BitSet set)
public void or(BitSet set)
public void xor(BitSet set)
利用它們可以完成兩個(gè)位集合之間的與、或、異或操作。
BitSet類中有一方法public int size()來(lái)取得位集合的大小,它的返回值與初始化時(shí)設(shè)定的位集合大小n不一樣,一般為64。
相關(guān)推薦:2010年9月計(jì)算機(jī)等級(jí)考試試題及答案解析專題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |