慕运维1137616
从Java 7(或Android API级别21 = 5.0+)开始,您可以直接使用ThreadLocalRandom.current().nextLong(n)(对于0≤x > 31); int bits, val; do { bits = next(31); val = bits % n; } while(bits - val + (n-1) < 0); return val; }所以我们可以修改它来执行nextLong:long nextLong(Random rng, long n) { // error checking and 2^x checking removed for simplicity. long bits, val; do { bits = (rng.nextLong() << 1) >>> 1; val = bits % n; } while (bits-val+(n-1) < 0L); return val;}