Genera numero casuale all'interno di un intervallo specificato in Java

Mohammad Irfan 12 ottobre 2023
  1. Genera numero casuale utilizzando la classe ThreadLocalRandom in Java
  2. Genera numero casuale utilizzando la classe Math in Java
  3. Genera numero casuale utilizzando la classe Random in Java
  4. Genera numero casuale utilizzando la classe Random in Java
  5. Genera numero casuale utilizzando la classe Random e IntStream in Java
  6. Genera numero casuale utilizzando il metodo nextFloat in Java
  7. Genera numero casuale utilizzando la classe RandomData in Java
  8. Genera numero casuale utilizzando la classe SecureRandom in Java
  9. Genera numero casuale utilizzando la classe RandomUtils in Java
Genera numero casuale all'interno di un intervallo specificato in Java

Questo tutorial introduce come generare un numero casuale all’interno di un intervallo specificato in Java.

Ci sono diversi modi per generare un numero casuale in Java, come il metodo nextInt() della classe ThreadLocalRandom, il metodo random() della classe Math, il metodo nextInt() della classe Random, il metodo ints() della classe Random, il metodo nextFloat() della classe Random e la classe RandomUtil, ecc.

Genera numero casuale utilizzando la classe ThreadLocalRandom in Java

Il pacchetto simultaneo Java fornisce una classe ThreadLocalRandom che ha il metodo nextInt(). Questo metodo può generare un numero intero casuale all’interno dell’intervallo specificato. Vedi l’esempio sotto.

import java.util.concurrent.ThreadLocalRandom;

public class SimpleTesting {
  public static void main(String[] args) {
    int min_val = 10;
    int max_val = 100;
    ThreadLocalRandom tlr = ThreadLocalRandom.current();
    int randomNum = tlr.nextInt(min_val, max_val + 1);
    System.out.println("Random Number: " + randomNum);
  }
}

Produzione:

Value in double: 12.9
Value in int: 12

Genera numero casuale utilizzando la classe Math in Java

La classe Java Math può essere utilizzata per generare un numero casuale all’interno dell’intervallo specificato. Qui, usiamo il metodo random() della classe Math per ottenere un numero casuale. Vedi l’esempio sotto.

public class SimpleTesting {
  public static void main(String[] args) {
    int min_val = 10;
    int max_val = 100;
    double randomNum = Math.random() * (max_val - min_val);
    System.out.println("Random Number: " + randomNum);
  }
}

Produzione:

Id: 1212
Name: Samre

Genera numero casuale utilizzando la classe Random in Java

La classe Random di Java può generare un numero intero casuale all’interno dell’intervallo specificato utilizzando il metodo nextInt(), che restituisce un valore intero. Vedi l’esempio sotto.

import java.util.Random;
public class SimpleTesting {
  public static void main(String[] args) {
    int min_val = 10;
    int max_val = 100;
    Random ran = new Random();
    int x = ran.nextInt(max_val) + min_val;
    System.out.println("Random Number: " + x);
  }
}

Produzione:

Id: 1212
Name: Samre

Genera numero casuale utilizzando la classe Random in Java

Questa è un’altra soluzione per ottenere un numero intero casuale all’interno dell’intervallo specificato. Qui, usiamo il metodo nextInt() della classe Random con parametri differenti. Vedi l’esempio sotto.

import java.util.Random;
public class SimpleTesting {
  public static void main(String[] args) {
    int min_val = 10;
    int max_val = 100;
    Random rand = new Random();
    int randomNum = min_val + rand.nextInt((max_val - min_val) + 1);
    System.out.println("Random Number: " + randomNum);
  }
}

Produzione:

Random Number: 75

Genera numero casuale utilizzando la classe Random e IntStream in Java

Qui, usiamo il metodo ints() della classe Random che restituisce un flusso di numeri casuali. Usiamo il metodo forEach() per stampare tutti gli interi casuali generati dal metodo ints(). Vedi l’esempio sotto.

import java.util.Random;
import java.util.stream.IntStream;
public class SimpleTesting {
  public static void main(String[] args) {
    int min_val = 10;
    int max_val = 100;
    Random rand = new Random();
    IntStream stream = rand.ints(5, min_val, max_val);
    stream.forEach(System.out::println);
  }
}

Produzione:

94
35
90
74
47

Genera numero casuale utilizzando il metodo nextFloat in Java

La classe Random fornisce un metodo nextFloat() per generare un numero casuale di tipo float. Se vogliamo ottenere un numero casuale di tipo float, questo metodo è utile. Vedi l’esempio sotto.

import java.util.Random;
public class SimpleTesting {
  public static void main(String[] args) {
    int min_val = 10;
    int max_val = 100;
    Random rand = new Random();
    float rand_val = rand.nextFloat() * (max_val - min_val);
    System.out.println(rand_val);
  }
}

Produzione:

71.88764

Genera numero casuale utilizzando la classe RandomData in Java

Se stai lavorando con la libreria apache commons, usa la classe RandomData. Questa classe fornisce un metodo nextInt() che restituisce un valore intero. Possiamo utilizzare questo metodo per generare numeri interi casuali all’interno dell’intervallo specificato. Vedi l’esempio sotto.

import org.apache.commons.math.random.RandomData;
import org.apache.commons.math.random.RandomDataImpl;
public class SimpleTesting {
  public static void main(String[] args) {
    int min_val = 10;
    int max_val = 100;
    RandomData randomData randomData = new RandomDataImpl();
    int number = randomData.nextInt(min_val, max_val);
    System.out.println(number);
  }
}

Produzione:

72

Genera numero casuale utilizzando la classe SecureRandom in Java

La classe SecureRandom appartiene al pacchetto security di Java che viene utilizzato per creare un numero casuale sicuro. Qui, usiamo la classe Date per generare un seme e quindi il metodo nextInt() per generare un numero intero casuale. Vedi l’esempio sotto.

import java.security.SecureRandom;
import java.util.Date;
public class SimpleTesting {
  public static void main(String[] args) {
    int min_val = 10;
    int max_val = 100;
    SecureRandom rand = new SecureRandom();
    rand.setSeed(new Date().getTime());
    int randomNum = rand.nextInt((max_val - min_val) + 1) + min_val;
    System.out.println(randomNum);
  }
}

Produzione:

65

Genera numero casuale utilizzando la classe RandomUtils in Java

Possiamo usare la classe RandomUtil della libreria apache commons per generare numeri interi casuali. Il metodo nextInt() di questa classe restituisce una classe intera. Vedi l’esempio sotto.

import org.apache.commons.lang3.RandomUtils;
public class SimpleTesting {
  public static void main(String[] args) {
    int min_val = 10;
    int max_val = 100;
    RandomUtils random = new RandomUtils();
    int randomNum = random.nextInt(min_val, max_val);
    System.out.println(randomNum);
  }
}

Produzione:

66

Articolo correlato - Java Math

Articolo correlato - Java Number