EN
Java - generate random long in range
10 points
xxxxxxxxxx
1
public static long nextLongBetween(long min, long max) {
2
return ThreadLocalRandom.current().nextLong(min, max);
3
}
Example:
xxxxxxxxxx
1
System.out.println(nextLongBetween(1L, 100L)); // 88
2
System.out.println(nextLongBetween(500L, 1000L)); // 590
3
System.out.println(nextLongBetween(-100L, -5L)); // -7
xxxxxxxxxx
1
public static long nextLongBetween2(long min, long max) {
2
return (long) (Math.random() * ((max - min) + 1)) + min;
3
}
Example:
xxxxxxxxxx
1
System.out.println(nextLongBetween2(1L, 100L)); // 48
2
System.out.println(nextLongBetween2(500L, 1000L)); // 689
3
System.out.println(nextLongBetween2(-100L, -5L)); // -71
xxxxxxxxxx
1
public static long nextLongBetween3(long min, long max) {
2
// java 8
3
return new Random().longs(min, (max + 1)).limit(1).findFirst().getAsLong();
4
}
Example:
xxxxxxxxxx
1
System.out.println(nextLongBetween3(1L, 100L)); // 58
2
System.out.println(nextLongBetween3(500L, 1000L)); // 702
3
System.out.println(nextLongBetween3(-100L, -5L)); // -15
ThreadLocalRandom - Java docs
Math - Java docs
Random - Java docs
LongStream - Java docs