How to generate random numbers in Java

Generating random numbers in Java

In Java, various random numbers exist, including integer, float, double, long, and boolean, created within a given range. In Java, there are four techniques for generating random numbers.

Random Class

The first method is to use a random class. Follow the steps below to utilize the Random Class to generate random numbers:

  • Import the java.util.Random class
  • Creating a new Random instance class by typing Random rand = new. Random()
  • Invoke one of the following rand object methods:
  • Int(upperbound) returns a random number between 0 and upperbound-1.next
  • Float() returns a float with a value between 0.0 and 1.0.
  • Double() returns a double with a value between 0.0 and 1.0.

Generating random numbers in Java with examples

import java.util.Random;

class RandomNumberGeneration {

public static void main( String args[] ) {
  Random rand_val = new Random(); //instance of random class
  int upperbound = 30; //generating random values from 0-29
  int rand_integer = rand.nextInt(upperbound);
  double rand_double=rand_val .nextDouble();
  float rand_float=rand_val .nextFloat();

  System.out.println("Random integers from 0 to" + (upperbound-1) + " : "+ rand_integer );
  System.out.println("Random float value between 0.0 and 1.0 : "+float_random);
  System.out.println("Random double value between 0.0 and 1.0 : "+rand_double);
}
}

Use ThreadLocalRandom to generate Random Numbers

Follow the instructions below to create random numbers using the ThreadLocalRandom class:

  • Import the java.util.concurrent class
  • ThreadLocalRandom – Invoke the method.
  • ThreadLocalRandom.current().next is used to create random numbers of type int – Int()
  • ThreadLocalRandom.current.next uses Int() to generate a random number of type double () – Double()
  • ThreadLocalRandom.current().nextBoolean() is used to create random numbers of type boolean
import java.util.concurrent.ThreadLocalRandom;
class RandomNumberGeneration {
public static void main( String args[] ) {
// Generation of random integer values
int rand_int = ThreadLocalRandom.current().nextInt();


// Display random integers
  System.out.println("Random integer values: " + rand_int);

  // Generation of double Random values
  double rand_double = ThreadLocalRandom.current().nextDouble();

  // Display random doubles
  System.out.println("Random Double Values: " + rand_double);

  //Generating Random Boolean Values  
  boolean rand_boolean = ThreadLocalRandom.current().nextBoolean();

  // Display random booleans
  System.out.println("Random Boolean Values: " + rand_boolean);
}
}

Java 8’s Random Number Generator

The Random class now contains a new method int(), introduced in Java 8. Before using the method, we must first import the java.util.Random package.

ints():

The pseudorandom int values are generated in the same way as the nextInt() method is called. It generates an infinite number of pseudorandom integer values.

long streamSize: ints(long streamSize): ints(long streamSize): int

The method parses a long-type parameter streamSize. It defines how many values should be generated. The pseudorandom int values are generated in the same way as the nextInt() method is called. It also returns a stream of int values that are created at random. On the off chance that the stream’s size is less than zero, it throws an IllegalArgumentException.

ints(long streamSize, int randomNumberOrigin, int randomNumberBound):

Parameters:

  • streamSize: Number of values to generate.
  • NumberOrigin: Each random value’s origin.
  • NumberBound: Each random number has abounded.

It generates a stream of pseudorandom int values with the origin and bound given. If any of the following conditions are met, it throws an IllegalArgumentException:

bound stramSize 0 origin > stramSize 0 origin > stramSize 0 origin > stramSize

Parameters:

  • randomNumberOrigin: Each random value’s origin.
  • randomNumberBound: Each random value’s bound

It generates an infinite stream of pseudorandom int values with the origin and bound supplied. If the origin is equal to bound or greater, it produces an IllegalArgumentException. Similarly, the longs() and doubles() methods generate a stream of long and double types, respectively. Let’s write a program that uses the Random class’s ints() method to generate a stream of numbers.

import java.util.Random;
public class RandomNumberGeneration
{
public static void main(String[] args)
{
randomInts(4);
randomInts(29, 70, 110);
//getStreamOfRandomInts(30, 120);
}
//method generating integer streams of size 4
public static void findRandomInts(int int_val)
{
Random rand_val = new Random();
rand_val.ints(int_val).forEach(System.out::println);
}
//method generating 9 integer streams between 50 to 120
public static void findRandomInts(int int_val, int int_origin, int int_bound)
{
Random rand_val = new Random();
rand_val.ints(int_val, int_origin, int_bound).forEach(System.out::println);
}
}

Using the Math.random function

Follow the steps below to generate random integers inside a range using Math.random():

  • Declare the range’s minimum value.
  • Declare the range’s maximum value.

To produce numbers with the min and max values included, use the formula Math.floor(Math.random()*(max-min+1)+min). In fact, you can only use this method if you need a random integer or float value.

class RandomNumberGeneration {

public static void main( String args[] ) {
  
int min_val = 250;
int max_val = 400;

//Generation of random integer values from 250 to 400

  System.out.println("Random integer values  from "+min_val+" to "+max_val+ ":");
  int rand_integer = (int)Math.floor(Math.random()*(max_val-min_val+1)+min_val);
  System.out.println(rand_integer);
}
}

Conclusion

We often need to create random numbers while developing applications in Java programming. Many programs can generate random numbers, such as the OTP, which validates the user. Dice implementation is one of the best illustrations of random numbers. A random number is shown between 1 and 6 when we throw it.

Similar Posts

  • How to use Math.random() method in Java

    The Math.random() method is one of Java’s most commonly used methods for generating a random numeric number. The java.lang class is a built-in class in Java.Math with several mathematical procedures, one of which is Math.random(). Because the Math.random() method is a static method, it can be invoked/called without first constructing a math class instance—the java.lang.Math class offers several methods for performing basic numeric operations such as the exponential, logarithm, square root, and trigonometric functions.

  • Comments in Java

    Any software would be incomplete without comments. They aid the person viewing the code (usually you) in comprehending the program’s aim and functionality. You must develop the practice of always commenting on your code as you write it rather than afterward.

  • Java for loop with examples

    Is it right to say that a good programmer must have a deep understanding of loops? That might be a yes or no question but also lacks meaning without justification. In short, what are loops? A loop is a program that Iterates/ repeats several times until a specific condition is met. Loops remain the same no matter the programming language you are using.

  • TreeMap in Java

    Besides the AbstractMap Class, Java’s TreeMap discreetly implements the Map interface and NavigableMap. Depending on which constructor is used, the map is sorted either by the natural ordering of its keys or by a Comparator specified at map creation time.

Leave a Reply

Your email address will not be published. Required fields are marked *