Vad är java.util.Random-klass i Java?
Klassen java.util.Random används för att generera pseudoslumptal. Metoderna som implementeras av denna klass används för att generera olika slumpmässiga datatyper som int, double och float. Så det finns två huvudtyper av slumptal, statistiskt slumpmässiga och pseudoslumptal . De statistiskt slumpmässiga talen (som enkla slumptal i matematik) är en uppsättning värden som inte har ett igenkännbart mönster. Till exempel, att kasta en tärning 10 gånger kommer att generera ett slumpmässigt tal varje gång som inte har något igenkännbart mönster.Vad är pseudoslumptal?
Det är en uppsättning värden som är statistiskt slumpmässiga men som har en känd utgångspunkt . I Java produceras varje pseudoslumptal genom en algoritm. Så vanligtvis upprepas en cykel varje gång java.util.Random genererar ett slumptal. En slumptalsgenerator i Java kommer att producera statistiskt slumptal men med en känd utgångspunkt, genererad av en algoritm. Det gör dessa värderingar till pseudoslumpar.Är java.util.Random klass kryptografiskt osäker?
Det är kryptografiskt osäkert eftersom det har implementerade algoritmer för att generera slumptal. Som ett resultat av vilket en person som vet hur algoritmen fungerar inte kommer att ta mycket tid att komma åt dina känsliga data. Så om du arbetar med vissa säkerhetsapplikationer, behövs för att säkra vissa känsliga data eller behöver generera slumpmässiga lösenord så är det bättre att undvika att använda den här klassen. Det är användbart i många fall som att generera ett slumpmässigt tal för ditt tärningskast i ludo, hasardspel, att kasta en match eller andra områden där ditt önskade resultat är oförutsägbart.Metoddeklaration
För att använda metoderna i denna klass måste du först importera den från paketet som
import java.util.Random;
Efter importen måste du skapa ett objekt av denna klass som
Random randomNumbers = new Random();
När vi går vidare, låt oss ta en titt på olika exempel för att använda klassen java.util.Random .
Exempel
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("]");
}
}
Produktion
Metoder
Nu kommer vi att diskutera några av metoderna som tillhandahålls av denna klass, med tanke på att randomNumbers är objektet eller instansen av vår klass.-
dubbel() :
Denna metod returnerar en oändlig serie av pseudoslumpmässigt genererade dubbla värden. Låt oss nu se hur man använder den här metoden.
randomNumbers.doubles();
-
ints() :
Denna metod returnerar en oändlig serie av pseudoslumpmässigt genererade heltalsvärden. Du kan använda följande skript för att anropa den här metoden.
randomNumbers.ints();
-
longs() :
Denna metod returnerar en oändlig serie av pseudoslumpmässigt genererade långa värden. Följande skript används för att anropa denna metod.
randomNumbers.longs();
-
nextBoolean() :
Denna metod returnerar nästa enhetligt fördelade pseudoslumpmässiga booleska värde från slumptalsgeneratorsekvensen. Den enhetliga fördelningen är rektangulär, vilket innebär att varje värde i fördelningen har lika sannolikhet. Så här använder du den här metoden.
randomNumbers.nextBoolean();
-
nästaInt(int n) :
Denna metod returnerar nästa enhetligt fördelade pseudoslumptalsvärde från slumptalsgeneratorsekvensen mellan 0 inklusive och det angivna värdet exklusivt. Få en snabb bild av hur du använder den här metoden.
randomNumbers.nextInt(10);
GO TO FULL VERSION