JAVA : Selected Random Numbers Between Range and No Duplicate


JAVA 7 introduced new package java.util.Random for handle random numbers. previously we used Math.random() to get random numbers.

In below example generating selected random numbers of certain integers range with out duplicate. Here range belongs to Min=0 , Max=25 and need non duplicate numbers 8.

Pre-Requisite

  • JAVA 7/JAVA 8

Sample Code

package random;

import java.util.ArrayList;
import java.util.Random;

public class SelectedRandomNumberBetweenRangeNoDuplicate {

	public static void main(String[] args) {

		 //Select Eight random number without duplicate between 0 and 50
		 ArrayList list = getRandomNonRepeatingIntegers(8, 0, 25);
		    for (int i = 0; i < list.size(); i++) {
		        System.out.println("" + list.get(i));
		    }
	}

	//Get selected size number without duplicate
	public static ArrayList getRandomNonRepeatingIntegers(int size, int min,
	        int max) {
	    ArrayList numbers = new ArrayList();
	    Random random = new Random();
	    while (numbers.size() < size) {
	    	//Get Random numbers between range
	        int randomNumber = random.nextInt((max - min) + 1) + min;
            //Check for duplicate values
	        if (!numbers.contains(randomNumber)) {
	            numbers.add(randomNumber);
	        }
	    }

	    return numbers;
	}

}

Output


4
19
20
22
17
13
8
16

Summary

I above code explain about How to generate random numbers and avoid duplicate of numbers between certain range.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s