Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Menjana Nombor Rawak Tidak Berulang di Jawa?

Bagaimanakah Saya Boleh Menjana Nombor Rawak Tidak Berulang di Jawa?

Mary-Kate Olsen
Lepaskan: 2024-11-09 10:01:02
asal
777 orang telah melayarinya

How Can I Generate Non-Repeating Random Numbers in Java?

Pendekatan Java untuk Menjana Nombor Rawak Tidak Berulang

Mencipta satu set nombor rawak unik di Java boleh menjadi satu cabaran. Pertimbangkan senario berikut di mana kita perlu mengisi tatasusunan dengan 10,000 integer tidak berulang antara 0 hingga 9999.

Coretan kod berikut cuba menangani masalah ini menggunakan kelas Rawak terbina dalam Java:

import java.util.Random;
public class Sort {
    public static void main(String[] args) {
        int[] nums = new int[10000];

        Random randomGenerator = new Random();

        for (int i = 0; i < nums.length; ++i) {
            nums[i] = randomGenerator.nextInt(10000);
        }
    }
}
Salin selepas log masuk

Walau bagaimanapun, kod ini mungkin menghasilkan nombor pendua kerana potensi perlanggaran apabila menggunakan operasi modulo untuk memetakan nombor rawak ke julat yang dikehendaki. Untuk memastikan nombor unik, kami boleh memanfaatkan kelas Koleksi Java.

Penyelesaian Menggunakan Java Collections.shuffle()

Pendekatan pilihan untuk menjana nombor rawak tidak berulang dalam Java adalah untuk menggunakan kaedah Collections.shuffle(). Begini caranya:

  1. Buat tatasusunan nombor (Integer[] arr).
  2. Gunakan Collections.shuffle(Arrays.asList(arr)) untuk rawak susunan unsur dalam tatasusunan.
  3. Tatasusunan rawak kini mengandungi nombor unik disebabkan oleh proses shuffling.

Sebagai contoh, coretan kod berikut menunjukkan kaedah ini:

public static void main(String[] args) {
    Integer[] arr = new Integer[1000];
    for (int i = 0; i < arr.length; i++) {
        arr[i] = i;
    }
    Collections.shuffle(Arrays.asList(arr));
    System.out.println(Arrays.toString(arr));
}
Salin selepas log masuk

Pendekatan ini menjamin bahawa setiap nombor dalam tatasusunan adalah unik dan memenuhi keperluan untuk menjana nombor rawak tidak berulang.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Nombor Rawak Tidak Berulang di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan