>>499
俺も一応試してみたけど別に遅いとは感じなかったけど…
499が言ってた実用に耐えられないというのはこれぐらいの処理時間で?

long start = System.currentTimeMillis();
while(count < 10000){
//ランダムに生成した500ビットのフラグa,bの比較
  BitSet c = (BitSet)a.clone();
  c.and(b);

  if(a.equals(c)) break;
  count++;
}
System.out.println(count + "回処理を実行しました \n1回の処理時間: " + ((double)( System.currentTimeMillis() - start ) / count) + "ms" );

出力(例)
10000回処理を実行しました
1回の処理時間: 0.0016ms