HOWTO · Java

Generar dobles aleatorios en un array en Java

Cómo generar dobles aleatorios en un array en Java

En esta página

Este artículo presentará cómo generar dobles aleatorios en un array de Java.

Genere double aleatorio en un array de Java utilizando la clase java.util.Random

En Java, utilizamos el método nextDouble() de la clase java.util.Random para generar un array aleatoria de dobles. Esta función devuelve el siguiente valor doble aleatorio generado por este generador de números aleatorios.

Ejemplo:

import java.util.Random;
public class RandomDoubles {
  public static void main(String[] args) {
    Random rd = new Random();
    double[] array = new double[3];
    for (int i = 0; i < array.length; i++) {
      array[i] = rd.nextDouble();
      System.out.println(array[i]);
    }
  }
}

Aquí, rd.nextDouble() devuelve un número entre 0 y 1.0.

Producción :

0.6281807590035252
0.34456583017282394
0.23684352236085848

Versión más corta

Hay una versión más corta de hacer lo mismo que la siguiente.

Ejemplo:

import java.util.Random;
public class RandomDoubles {
  public static void main(String[] args) {
    Random rd = new Random();
    double[] array = rd.doubles(5, 10, 100).toArray();
  }
}

El primer argumento del método rd.doubles toma el número de dobles aleatorios que desea en la matriz. Y, el segundo y tercer argumento toma un valor mínimo y máximo de rango para generar números aleatorios.

Producción:

78.21950288465801 80.12875947698258 94.95442635507693 88.63415507060164 31.283712117527568

Genere double aleatorio en un array de Java usando ThreadLocalRandom

También podemos generar dobles aleatorios usando ThreadLocalRandom.

Ejemplo:

import java.util.concurrent.ThreadLocalRandom;
public class RandomDoubles {
  public static void main(String[] args) {
    double[] randoms = ThreadLocalRandom.current().doubles(5).toArray();
    for (double num : randoms) {
      System.out.println(num);
    }
  }
}

Producción :

0.5417255613845797
0.2522145088132569
0.42238415650855565
0.8432309480218088
0.13192651019478996