399 |
|
} |
400 |
|
|
401 |
|
/** |
402 |
+ |
* Fills a user-supplied byte array with generated pseudorandom bytes. |
403 |
+ |
* |
404 |
+ |
* @param bytes the byte array to fill with pseudorandom bytes |
405 |
+ |
* @throws NullPointerException if bytes is null |
406 |
+ |
* @since 10 |
407 |
+ |
*/ |
408 |
+ |
public void nextBytes(byte[] bytes) { |
409 |
+ |
int i = 0; |
410 |
+ |
int len = bytes.length; |
411 |
+ |
for (int words = len >> 3; words--> 0; ) { |
412 |
+ |
long rnd = nextLong(); |
413 |
+ |
for (int n = 8; n--> 0; rnd >>>= Byte.SIZE) |
414 |
+ |
bytes[i++] = (byte)rnd; |
415 |
+ |
} |
416 |
+ |
if (i < len) |
417 |
+ |
for (long rnd = nextLong(); i < len; rnd >>>= Byte.SIZE) |
418 |
+ |
bytes[i++] = (byte)rnd; |
419 |
+ |
} |
420 |
+ |
|
421 |
+ |
/** |
422 |
|
* Returns a pseudorandom {@code int} value. |
423 |
|
* |
424 |
|
* @return a pseudorandom {@code int} value |