首頁 > Java > java教程 > 如何在Java中產生不重複的隨機數?

如何在Java中產生不重複的隨機數?

Mary-Kate Olsen
發布: 2024-11-09 10:01:02
原創
776 人瀏覽過

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

產生不重複隨機數的 Java 方法

在 Java 中創建一組唯一的隨機數可能是一個挑戰。考慮以下場景,我們需要用 10,000 個範圍從 0 到 9999 的非重複整數填滿陣列。

以下程式碼片段嘗試使用 Java 內建的 Random 類別來解決此問題:

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);
        }
    }
}
登入後複製

但是,由於在使用取模運算將隨機數對應到所需範圍。為了確保數字的唯一性,我們可以利用 Java 的 Collections 類別。

使用 Java Collections.shuffle() 的解決方案

Java 中產生不重複隨機數的首選方法是利用 Collections.shuffle() 方法。它的工作原理如下:

  1. 建立一個數字數組 (Integer[] arr)。
  2. 使用 Collections.shuffle(Arrays.asList(arr)) 隨機化元素的順序在陣列中。
  3. 由於洗牌,隨機數組現在包含唯一的數字

例如下面的代碼片段演示了這種方法:

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));
}
登入後複製

這種方法保證數組中的每個數字都是唯一的,並且滿足生成非重複隨機數。

以上是如何在Java中產生不重複的隨機數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板