CodeGym /جاوا بلاگ /Random-UR /Java.util.Random کلاس
John Squirrels
سطح
San Francisco

Java.util.Random کلاس

گروپ میں شائع ہوا۔

جاوا میں java.util.Random کلاس کیا ہے؟

java.util.Random کلاس کو سیوڈورنڈم نمبر بنانے کے لیے استعمال کیا جاتا ہے ۔ اس کلاس کے ذریعے لاگو کیے گئے طریقے مختلف بے ترتیب ڈیٹا کی قسمیں جیسے کہ int، double، اور float بنانے کے لیے استعمال کیے جاتے ہیں۔ لہذا بے ترتیب نمبروں کی دو بڑی اقسام ہیں، شماریاتی اعتبار سے بے ترتیب اور سیوڈورنڈم نمبر ۔ اعداد و شمار کے لحاظ سے بے ترتیب اعداد (جیسا کہ ریاضی میں سادہ بے ترتیب نمبر)، اقدار کا ایک مجموعہ ہیں جن کا کوئی قابل شناخت نمونہ نہیں ہے۔ مثال کے طور پر، نرد کو 10 بار گھمانے سے ہر بار ایک بے ترتیب نمبر پیدا ہوتا ہے جس کا کوئی قابل شناخت نمونہ نہیں ہوتا ہے۔

سیوڈو رینڈم نمبرز کیا ہیں؟

یہ اقدار کا ایک مجموعہ ہے جو اعدادوشمار کے لحاظ سے بے ترتیب ہیں لیکن ان کا ایک معروف نقطہ آغاز ہے ۔ جاوا میں، ہر ایک سیوڈورنڈم نمبر الگورتھم کے ذریعے تیار کیا جاتا ہے۔ لہذا عام طور پر ایک سائیکل ہر بار دہرایا جاتا ہے جب java.util.Random ایک بے ترتیب نمبر تیار کرتا ہے۔ جاوا میں ایک بے ترتیب نمبر جنریٹر اعدادوشمار کے لحاظ سے بے ترتیب نمبر تیار کرے گا لیکن ایک معلوم نقطہ آغاز کے ساتھ، الگورتھم کے ذریعے تیار کیا گیا ہے۔ یہ ان اقدار کو چھدم بنا دیتا ہے۔

کیا java.util.Random کلاس خفیہ طور پر غیر محفوظ ہے؟

یہ خفیہ طور پر غیر محفوظ ہے کیونکہ اس میں بے ترتیب نمبر پیدا کرنے کے لیے الگورتھم نافذ کیے گئے ہیں۔ جس کے نتیجے میں ایک شخص یہ جانتا ہے کہ الگورتھم کیسے کام کرتا ہے آپ کے حساس ڈیٹا تک رسائی میں زیادہ وقت نہیں لگے گا۔ لہذا اگر آپ کچھ سیکیورٹی ایپلی کیشنز کے ساتھ کام کر رہے ہیں، کچھ حساس ڈیٹا کو محفوظ کرنے کی ضرورت ہے، یا بے ترتیب پاس ورڈ بنانے کی ضرورت ہے تو بہتر ہے کہ اس کلاس کو استعمال کرنے سے گریز کریں۔ یہ بہت سے معاملات میں مددگار ثابت ہوتا ہے جیسے لڈو میں آپ کے ڈائس رول کے لیے بے ترتیب نمبر بنانا، جوا کھیلنا، میچ کے لیے ٹاس کرنا یا دوسرے علاقوں میں جہاں آپ کا مطلوبہ نتیجہ غیر متوقع ہے۔

طریقہ کا اعلان

اس کلاس کے طریقے استعمال کرنے کے لیے آپ کو پہلے اسے پیکج سے درآمد کرنا ہوگا۔
import java.util.Random;
درآمد کرنے کے بعد، آپ کو اس کلاس کا ایک آبجیکٹ بنانا ہوگا۔
Random randomNumbers = new Random();
مزید آگے بڑھتے ہوئے، آئیے java.util.Random کلاس کو استعمال کرنے کے لیے مختلف مثالوں پر ایک نظر ڈالیں۔

مثال

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

}

آؤٹ پٹ

----------رینڈم بولین--------- بے ترتیب بولین قدر ہے: سچ ----------رینڈم انٹیجر--------- ڈائی رول: 4 ڈائی رول: 6 ڈائی رول: 1 ڈائی رول: 1 ڈائی رول: 3 ---------- رینڈم لانگ--------- رینڈم لانگ ویلیو: -6029959293504570824 ---- ------رینڈم بائٹس--------- یہ رینڈم بائٹس ہیں = [ -37 90 -98 -70 23 -111 19 108]

طریقے

اب ہم اس کلاس کے فراہم کردہ کچھ طریقوں پر بات کریں گے، اس بات کو ذہن میں رکھتے ہوئے کہ randomNumbers ہماری کلاس کا اعتراض یا مثال ہے۔
  1. ڈبلز() :

    یہ طریقہ pseudorandomly پیدا ہونے والی دوہری قدروں کا ایک لامحدود سلسلہ لوٹاتا ہے۔ اب دیکھتے ہیں کہ یہ طریقہ کیسے استعمال کیا جائے۔

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

    یہ طریقہ pseudorandomly پیدا ہونے والی عددی اقدار کی لامحدود سیریز لوٹاتا ہے۔ آپ اس طریقہ کو کال کرنے کے لیے درج ذیل اسکرپٹ کا استعمال کر سکتے ہیں۔

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

    یہ طریقہ pseudorandomly پیدا ہونے والی لمبی اقدار کی ایک لامحدود سیریز واپس کرتا ہے۔ اس طریقہ کو کال کرنے کے لیے درج ذیل اسکرپٹ کا استعمال کیا جاتا ہے۔

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

    یہ طریقہ بے ترتیب نمبروں کے جنریٹر کی ترتیب سے اگلی یکساں طور پر تقسیم شدہ سیوڈورنڈم بولین ویلیو واپس کرتا ہے۔ یکساں تقسیم مستطیل نما ہوتی ہے، یعنی تقسیم میں ہر قدر کا مساوی امکان ہوتا ہے۔ اس طریقہ کو استعمال کرنے کا طریقہ یہاں ہے۔

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

    یہ طریقہ 0 کے درمیان بے ترتیب نمبروں کے جنریٹر کی ترتیب سے یکساں طور پر تقسیم شدہ سیوڈورنڈم انٹیجر ویلیو کو واپس کرتا ہے۔ اس طریقہ کو استعمال کرنے کے طریقے کے بارے میں فوری نظر ڈالیں۔

    randomNumbers.nextInt(10);

نتیجہ

ہم امید کرتے ہیں کہ اب تک آپ سمجھ گئے ہوں گے کہ java.util.Random کیا ہے اور اس کے مختلف طریقوں کو کیسے نافذ کیا جائے اور اسے کس منظر نامے میں استعمال کیا جائے۔ آپ ہمیشہ اس کلاس کو جاوا میں استعمال کر سکتے ہیں۔ مشق کرنے کے لئے آزاد محسوس کریں اور جب بھی آپ کو مزید مدد کی ضرورت ہو یہاں واپس آجائیں۔ خوش تعلیم!
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION