Map<Integer, Boolean>などと使ってはいないだろうか?
Keyに応じて, フラグを立てておきたい場合, Mapを使うとメモリ的にも, 速度的にもBitSet
を使うべきだ。
ex )
BitSet bits = new BitSet();
bits.set(1); // 1にセット
bits.set(3); // 3にセット
bits.set(5); // 5にセット
for ( int i=bits.nextSetBit(0); i >= 0; i = bits.nextSetBit(i + 1) )
{
// 順序よく操作, もし存在しなければ i = -1となるので, これでループになる
System.out.println( i + "君にフラグたってる");
}
result)
1君にフラグたってる
3君にフラグたってる
5君にフラグたってる
ループ内でiへの代入が抜けてますよ。i=bits.nextSetBit(i+1)
返信削除ご指摘ありがとうございます。おっしゃる通りです。代入がないと, 次へいけませんね。
返信削除