CodeGym /Blogue Java /Random-PT /Classe Java.util.Random
John Squirrels
Nível 41
San Francisco

Classe Java.util.Random

Publicado no grupo Random-PT

O que é a classe java.util.Random em Java?

A classe java.util.Random é usada para gerar números pseudoaleatórios. Os métodos implementados por essa classe são usados ​​para gerar diferentes tipos de dados aleatórios, como int, double e float. Portanto, existem dois tipos principais de números aleatórios, números estatisticamente aleatórios e pseudo-aleatórios . Os números estatisticamente aleatórios (como números aleatórios simples em matemática) são um conjunto de valores que não possuem um padrão reconhecível. Por exemplo, rolar um dado 10 vezes gerará um número aleatório cada vez que não possui nenhum padrão reconhecível.

O que são números pseudoaleatórios?

É um conjunto de valores estatisticamente aleatórios, mas com um ponto de partida conhecido . Em Java, cada número pseudoaleatório é produzido por meio de um algoritmo. Normalmente, um ciclo é repetido toda vez que java.util.Random gera um número aleatório. Um gerador de números aleatórios em Java produzirá números estatisticamente aleatórios, mas com um ponto de partida conhecido, gerado por um algoritmo. Isso torna esses valores pseudoaleatórios.

A classe java.util.Random é criptograficamente insegura?

É criptograficamente inseguro porque possui algoritmos implementados para gerar números aleatórios. Como resultado, uma pessoa que saiba como o algoritmo funciona não levará muito tempo acessando seus dados confidenciais. Portanto, se você estiver trabalhando com alguns aplicativos de segurança, necessários para proteger alguns dados confidenciais ou precisar gerar senhas aleatórias, é melhor evitar o uso dessa classe. É útil em muitos casos, como gerar um número aleatório para sua rolagem de dados no ludo, jogos de azar, jogar uma partida ou outras áreas em que o resultado desejado é imprevisível.

Declaração de método

Para usar os métodos desta classe, você precisa primeiro importá-lo do pacote como

import java.util.Random;
Após a importação, você precisa criar um objeto desta classe como

Random randomNumbers = new Random();
Indo além, vamos dar uma olhada em diferentes exemplos para usar a classe java.util.Random .

Exemplo


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("]");
	}

}

Saída

----------Random Boolean--------- O valor booleano aleatório é: true ----------Random Integer--------- Die Rolagem: 4 Rolagem de dados: 6 Rolagem de dados: 1 Rolagem de dados: 1 Rolagem de dados: 3 ---------- Longo aleatório-------- Valor longo aleatório: -6029959293504570824 ---- ------Bytes aleatórios--------- Estes são os bytes aleatórios = [-37 90 -98 -70 23 -111 19 108]

Métodos

Agora vamos discutir alguns dos métodos fornecidos por esta classe, tendo em mente que o randomNumbers é o objeto ou instância de nossa classe.
  1. duplas() :

    Esse método retorna uma série infinita de valores duplos gerados de forma pseudoaleatória. Agora vamos ver como usar este método.

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

    Este método retorna uma série infinita de valores inteiros gerados de forma pseudoaleatória. Você pode usar o script a seguir para chamar esse método.

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

    Este método retorna uma série infinita de valores longos gerados de forma pseudoaleatória. O script a seguir é usado para chamar esse método.

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

    Este método retorna o próximo valor booleano pseudoaleatório distribuído uniformemente da sequência do gerador de números aleatórios. A distribuição uniforme tem formato retangular, o que significa que cada valor na distribuição tem uma probabilidade igual. Veja como usar esse método.

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

    Este método retorna o próximo valor inteiro pseudoaleatório distribuído uniformemente da sequência do gerador de números aleatórios entre 0 inclusive e o valor fornecido exclusivo. Tenha uma visão rápida de como usar este método.

    
    randomNumbers.nextInt(10);
    

Conclusão

Esperamos que agora você entenda o que é java.util.Random e como implementar seus diferentes métodos e em qual cenário usá-lo. Você sempre pode usar essa classe em java. Sinta-se à vontade para praticar e volte aqui sempre que precisar de mais ajuda. Feliz aprendizado!
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION