Interfaz RandomGenerator
Usa la interfaz RandomGenerator para elegir algoritmos de números aleatorios por nombre sin acoplarse a una clase específica.
// Hard-coded to one algorithm
Random rng = new Random();
int value = rng.nextInt(100);
// Or thread-local, but still locked in
int value = ThreadLocalRandom.current()
.nextInt(100);
// Algorithm-agnostic via factory
var rng = RandomGenerator.of("L64X128MixRandom");
int value = rng.nextInt(100);
// Or get a splittable generator
var rng = RandomGeneratorFactory
.of("L64X128MixRandom").create();
Agnóstico al algoritmo
Elige el mejor algoritmo de generación aleatoria por nombre sin cambiar la estructura del código.
Mejores algoritmos
Acceso a generadores LXM modernos con propiedades estadísticas superiores.
API unificada
Una interfaz cubre Random, ThreadLocalRandom, SplittableRandom y más.
Disponible desde JDK 17 (septiembre 2021, JEP 356).
JDK 17 introdujo RandomGenerator como interfaz común para todas las implementaciones de generadores de números aleatorios. En lugar de codificar new Random() o ThreadLocalRandom, puedes seleccionar algoritmos por nombre a través de una factoría, facilitando el cambio entre algoritmos optimizados para diferentes casos de uso (velocidad, calidad estadística, divisibilidad).