JAvaコレクションのビットセットの使用
1804 ワード
ビットセットを使用してフラグビットを解決することはbooleanクラスを使用するオブジェクトよりも効率的であり、実装されたクラスライブラリメソッドが呼び出されます.
動物園の動物の種類を記録し統計する小さなシステムを設計すれば、ある動物を増やしたり削除したりすることができ、動物園にどの動物がいるかを調べることができます.実装されるコードは次のとおりです.
注意:コードのモジュール化テストを実現するために、クラスにmain関数を追加しました.この関数はクラスの正常な使用に影響しません.
実行結果:
動物園の動物の種類を記録し統計する小さなシステムを設計すれば、ある動物を増やしたり削除したりすることができ、動物園にどの動物がいるかを調べることができます.実装されるコードは次のとおりです.
注意:コードのモジュール化テストを実現するために、クラスにmain関数を追加しました.この関数はクラスの正常な使用に影響しません.
public class BitSetTest {
private BitSet bitset = new BitSet(80);
/**
*
* */
public boolean getAnimal(int bitIndex) {
return bitset.get(bitIndex);
}
/**
*
* */
public int getLength() {
int i =0 ;
int k ;
int j = getLogicLength();
for( k=0 ;k < j; k++)
{
if(bitset.get(k))
i++;
}
return i;
}
private int getLogicLength() {
/* , */
return bitset.length();
}
/**
* , ,
* */
public void addAnimal(int bitIndex) {
bitset.set(bitIndex);
}
/**
*
* */
public void clearAnimal(int bitIndex) {
bitset.clear(bitIndex);
}
/**
*
* */
public static final int Tigger =0;
public static final int Mouse =1;
public static final int Cat=2;
public static final int Dog=3;
public static final int Fox=4;
public static final int Horse=5;
public static final int Ox=6;
public static final int Pig=7;
public static void main(String[] args) {
BitSetTest AnimalStat = new BitSetTest();
AnimalStat.addAnimal(Pig);
AnimalStat.addAnimal(Ox);
AnimalStat.addAnimal(Horse);
if(AnimalStat.getAnimal(Pig))
System.out.println("hava pig");
if(AnimalStat.getAnimal(Horse))
System.out.println("hava horse");
System.out.println(" :");
System.out.print(AnimalStat.getLength());
}
}
実行結果:
hava pig
hava horse
:
3