CodeGym /Blog Java /rawak /Kelas Java.util.Random
John Squirrels
Tahap
San Francisco

Kelas Java.util.Random

Diterbitkan dalam kumpulan

Apakah kelas java.util.Random dalam Java?

Kelas java.util.Random digunakan untuk menjana nombor pseudorandom. Kaedah yang dilaksanakan oleh kelas ini digunakan untuk menjana jenis data rawak yang berbeza seperti int, double, dan float. Jadi terdapat dua jenis nombor rawak utama, nombor rawak statistik dan nombor pseudorandom . Nombor rawak statistik (seperti nombor rawak mudah dalam matematik), ialah satu set nilai yang tidak mempunyai corak yang boleh dikenali. Sebagai contoh, membaling dadu sebanyak 10 kali akan menghasilkan nombor rawak setiap kali yang tidak mempunyai sebarang corak yang boleh dikenali.

Apakah Nombor Rawak Pseudo?

Ia adalah satu set nilai yang rawak secara statistik tetapi mempunyai titik permulaan yang diketahui . Di Java, setiap nombor pseudorandom dihasilkan melalui algoritma. Jadi biasanya kitaran diulang setiap kali java.util.Random menjana nombor rawak. Penjana nombor rawak di Jawa akan menghasilkan nombor rawak statistik tetapi dengan titik permulaan yang diketahui, yang dihasilkan oleh algoritma. Itu menjadikan nilai tersebut pseudorandom.

Adakah kelas java.util.Random Secara Kriptografi Tidak Selamat?

Ia secara kriptografi tidak selamat kerana ia mempunyai algoritma yang dilaksanakan untuk menjana nombor rawak. Akibatnya seseorang yang mengetahui cara algoritma berfungsi tidak akan mengambil banyak masa untuk mengakses data sensitif anda. Jadi, jika anda bekerja dengan beberapa aplikasi keselamatan, diperlukan untuk mendapatkan beberapa data sensitif, atau perlu menjana kata laluan rawak maka lebih baik untuk mengelak daripada menggunakan kelas ini. Ia membantu dalam banyak kes seperti menjana nombor rawak untuk lemparan dadu anda dalam ludo, perjudian, melakukan lambungan untuk perlawanan atau kawasan lain yang hasil yang anda inginkan tidak dapat diramalkan.

Pengisytiharan Kaedah

Untuk menggunakan kaedah kelas ini anda perlu mengimportnya terlebih dahulu dari pakej sebagai

import java.util.Random;
Selepas mengimport, anda perlu mencipta objek kelas ini seperti

Random randomNumbers = new Random();
Bergerak lebih jauh, mari kita lihat contoh yang berbeza untuk menggunakan kelas java.util.Random .

Contoh


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

}

Pengeluaran

----------Boolean rawak--------- Nilai boolean rawak ialah: benar ----------Integer Rawak--------- Mati Gulung: 4 Gulung Die: 6 Gulung Die: 1 Gulung Die: 1 Gulung Die: 3 ----------Panjang Rawak--------- Nilai Panjang Rawak: -6029959293504570824 ---- ------Bait Rawak--------- Ini ialah bait rawak = [ -37 90 -98 -70 23 -111 19 108 ]

Kaedah

Sekarang kita akan membincangkan beberapa kaedah yang disediakan oleh kelas ini, dengan mengingati bahawa randomNumbers ialah objek atau contoh kelas kita.
  1. beregu() :

    Kaedah ini mengembalikan siri tak terhingga nilai berganda yang dijana secara pseudorandom. Sekarang mari kita lihat cara menggunakan kaedah ini.

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

    Kaedah ini mengembalikan siri tak terhingga nilai integer yang dijana secara pseudorandom. Anda boleh menggunakan skrip berikut untuk memanggil kaedah ini.

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

    Kaedah ini mengembalikan siri tak terhingga nilai panjang yang dijana secara pseudorandom. Skrip berikut digunakan untuk memanggil kaedah ini.

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

    Kaedah ini mengembalikan nilai boolean pseudorandom teragih seragam seterusnya daripada jujukan penjana nombor rawak. Taburan seragam berbentuk segi empat tepat, bermakna setiap nilai dalam taburan mempunyai kebarangkalian yang sama. Berikut ialah cara menggunakan kaedah ini.

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

    Kaedah ini mengembalikan nilai integer pseudorandom teragih seragam seterusnya daripada jujukan penjana nombor rawak antara 0 inklusif dan nilai yang disediakan eksklusif. Dapatkan pandangan pantas tentang cara menggunakan kaedah ini.

    
    randomNumbers.nextInt(10);
    

Kesimpulan

Kami berharap sekarang anda memahami apa itu java.util.Random dan cara melaksanakan kaedahnya yang berbeza dan dalam senario mana untuk menggunakannya. Anda sentiasa boleh menggunakan kelas ini dalam java. Jangan ragu untuk berlatih dan kembali ke sini apabila anda memerlukan bantuan lanjut. Selamat belajar!
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION