CodeGym/Java Blog/Random-IT/Classe Java.util.Random
John Squirrels
Livello 41
San Francisco

Classe Java.util.Random

Pubblicato nel gruppo Random-IT
membri

Che cos'è la classe java.util.Random in Java?

La classe java.util.Random viene utilizzata per generare numeri pseudocasuali. I metodi implementati da questa classe vengono utilizzati per generare diversi tipi di dati casuali come int, double e float. Quindi ci sono due tipi principali di numeri casuali, numeri statisticamente casuali e pseudocasuali . I numeri statisticamente casuali (come i semplici numeri casuali in matematica), sono un insieme di valori che non hanno uno schema riconoscibile. Ad esempio, lanciare un dado 10 volte genererà ogni volta un numero casuale che non ha alcuno schema riconoscibile.

Cosa sono i numeri pseudo casuali?

È un insieme di valori statisticamente casuali ma con un punto di partenza noto . In Java, ogni numero pseudocasuale viene prodotto attraverso un algoritmo. Quindi in genere un ciclo viene ripetuto ogni volta che java.util.Random genera un numero casuale. Un generatore di numeri casuali in Java produrrà numeri statisticamente casuali ma con un punto di partenza noto, generato da un algoritmo. Ciò rende questi valori pseudocasuali.

La classe java.util.Random è crittograficamente insicura?

È crittograficamente insicuro perché ha implementato algoritmi per la generazione di numeri casuali. Di conseguenza, una persona che sa come funziona l'algoritmo non impiegherà molto tempo ad accedere ai tuoi dati sensibili. Quindi, se stai lavorando con alcune applicazioni di sicurezza, hai bisogno di proteggere alcuni dati sensibili o hai bisogno di generare password casuali, allora è meglio evitare di usare questa classe. È utile in molti casi come generare un numero casuale per il lancio dei dadi in ludo, gioco d'azzardo, lancio di una partita o altre aree in cui il risultato desiderato è imprevedibile.

Dichiarazione di metodo

Per utilizzare i metodi di questa classe è necessario importarlo prima dal pacchetto come
import java.util.Random;
Dopo l'importazione, devi creare un oggetto di questa classe come
Random randomNumbers = new Random();
Andando oltre, diamo un'occhiata a diversi esempi per utilizzare la classe java.util.Random .

Esempio

import java.util.Random;

public class RandomClassExample1 {

	public static void main(String[] args) {

		// create random object
		Random randomNumbers = new Random();

		System.out.println("----------Random Boolean---------" );
		/*
		 * Returns the next pseudo random boolean value which
		 * may be used in a toss for a match
		 */
		boolean value = randomNumbers.nextBoolean();
		System.out.println("The random boolean value is: " + value);

		/*
		 * Returns the next pseudo random integer value between 0 and 5
		 * because if we use '6' then, it will give random numbers from 0 to 6
		 * hence incrementing it by 1 you can use it as a result of a dice roll
		 */
		System.out.println("\n----------Random Integer---------" );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );

		// return the next pseudo random long value
		Long val = randomNumbers.nextLong();
		System.out.println("\n----------Random Long---------" );
		System.out.println("Random Long value: " + val);

		/*
		 * Generates random bytes and puts them in an array, which you can for some
		 * desired unpredictable result that is summing all the values in the array
		 */

		System.out.println("\n----------Random Bytes---------" );
		byte[] bytes = new byte[8];
		randomNumbers.nextBytes(bytes);

		System.out.print("These are the random bytes = [ ");
		for (int i = 0; i < bytes.length; i++) {
			System.out.printf("%d ", bytes[i]);
		}
		System.out.println("]");
	}

}

Produzione

----------Booleano casuale--------------- Il valore booleano casuale è: true ----------Intero casuale--------- Die Tiro: 4 Tiro di dado: 6 Tiro di dado: 1 Tiro di dado: 1 Tiro di dado: 3 ---------- Lungo casuale--------- Valore lungo casuale: -6029959293504570824 ---- ------Byte casuali--------- Questi sono i byte casuali = [ -37 90 -98 -70 23 -111 19 108 ]

Metodi

Ora discuteremo alcuni dei metodi forniti da questa classe, tenendo presente che randomNumbers è l'oggetto o l'istanza della nostra classe.
  1. raddoppia() :

    Questo metodo restituisce una serie infinita di valori double generati in modo pseudocasuale. Ora vediamo come utilizzare questo metodo.

    randomNumbers.doubles();
  2. int() :

    Questo metodo restituisce una serie infinita di valori interi generati in modo pseudocasuale. È possibile utilizzare lo script seguente per chiamare questo metodo.

    randomNumbers.ints();
  3. long() :

    Questo metodo restituisce una serie infinita di valori lunghi generati in modo pseudocasuale. Lo script seguente viene utilizzato per chiamare questo metodo.

    randomNumbers.longs();
  4. nextBooleano() :

    Questo metodo restituisce il successivo valore booleano pseudocasuale distribuito uniformemente dalla sequenza del generatore di numeri casuali. La distribuzione uniforme è di forma rettangolare, il che significa che ogni valore nella distribuzione ha un'uguale probabilità. Ecco come utilizzare questo metodo.

    randomNumbers.nextBoolean();
  5. nextInt(int n) :

    Questo metodo restituisce il successivo valore intero pseudocasuale uniformemente distribuito dalla sequenza del generatore di numeri casuali compreso tra 0 incluso e il valore fornito esclusivo. Avere una rapida visione di come utilizzare questo metodo.

    randomNumbers.nextInt(10);

Conclusione

Speriamo che ormai tu capisca cos'è java.util.Random e come implementare i suoi diversi metodi e in quale scenario utilizzarlo. Puoi sempre usare questa classe in java. Sentiti libero di esercitarti e torna qui ogni volta che hai bisogno di ulteriore assistenza. Buon apprendimento!
Commenti
  • Popolari
  • Nuovi
  • Vecchi
Devi avere effettuato l'accesso per lasciare un commento
Questa pagina non ha ancora commenti