1. ホーム
  2. java

[解決済み】Javaによる非繰り返し乱数の生成

2022-02-15 21:44:54

質問

Javaで重複のない乱数セットを作りたいのですが、どうすればいいですか?

例えば、0から9999までの10,000個のランダムな整数を格納する配列があります。

今までのはこんな感じです。

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);
        }
    }
}

しかし、上記のコードでは重複が発生します。 どうすれば乱数が繰り返されないようにできるでしょうか?

解決方法は?

Integer[] arr = {...};
Collections.shuffle(Arrays.asList(arr));

例えば

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));

}