JAVA

2011-12-19 2 views
6

'daki BitSet'i rasgele başlatır. Rasgele başlatılması gereken BitSet'im var. Bunu yapmak için herhangi bir yöntem var mı?JAVA

Şimdiden teşekkürler.

cevap

8

Sadece BitSet üzerinden gidin ve Random sınıfının nextBoolean() öğesini çağırın.

4

Böyle bir kurucu yok. Yapmanız gereken şey bir BitSet oluşturmak ve sonra bir döngüde tüm bitleri rastgele değerlere ayarlamaktır.

+0

Sınırsız bir bit bitinin tüm bitlerini ayarlamak biraz zaman alacak ... OP'in kaç bit ayarlayacağını belirlemek zorunda olduğunu açıkça belirtmek isteyebilir. – yshavit

+0

Evet, bir BitSet sabit uzunlukta olduğunu varsayıyordum. – Thilo

5

Java 7 kullanıyorsanız, sen Random.nextBytes(byte[]) ile rastgele bayt dizisi daha sonra aynı bayt dizisinden bir BitSet oluşturmak için statik BitSet.valueOf(byte[]) yöntemi kullanın başlatabilir.

Random rnd = new Random(); 
// ... 
byte[] randomBytes = new byte[NUM_BYTES]; 
rnd.nextBytes(randomBytes); 
return BitSet.valueOf(randomBytes); 

Yoksa 50:50 dışında bir şey olması 0 vs 1 bit oranını istiyorsanız an old SO question of mine göz atın.