在JAVA中随机初始化BitSet

7
我有一个BitSet,需要随机初始化。有没有方法可以做到这一点?
提前感谢。
3个回答

8
只需要使用 BitSet 并调用 Random 类的 nextBoolean() 即可。

6
如果您正在使用Java 7,则可以使用Random.nextBytes(byte[])初始化一个随机的byte数组,然后使用静态的BitSet.valueOf(byte[])方法从同一字节数组创建一个BitSet
Random rnd = new Random();
// ...
byte[] randomBytes = new byte[NUM_BYTES];
rnd.nextBytes(randomBytes);
return BitSet.valueOf(randomBytes);

如果您想让01的比例不是50:50,可以查看我的一个旧SO问题

4

不存在这样的构造函数。您需要创建一个BitSet,然后在循环中将所有位设置为随机值。


设置一个无限位向量的所有位将需要一些时间...可能值得明确指出,原帖作者将不得不确定要设置多少位。 - yshavit
是的,我假设了一个固定长度的 BitSet。 - Thilo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接