package org.zstack.test;
import org.junit.Test;
import java.util.BitSet;
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
public class TestBitset {
@Test
public void test() {
int num = 100;
BitSet bit = new BitSet(num);
//bit.set(0, num);
Random r = new Random();
long s = System.currentTimeMillis();
for (int i = 0; i < num; i++) {
bit.set(r.nextInt(num));
}
int f = bit.cardinality();
System.out.println(bit.cardinality());
Set<Integer> free = new HashSet<Integer>(num / 2);
int j = 0;
for (int i = 0; i < num - f; i++) {
int a = bit.nextClearBit(j);
j = a + 1;
free.add(a);
}
long e = System.currentTimeMillis();
System.out.println(e - s);
System.out.println(free.size());
}
}