非反復乱数を生成する Java アプローチ
Java で一意の乱数のセットを作成するのは難しい場合があります。配列に 0 ~ 9999 の非繰り返し整数 10,000 個を設定する必要がある次のシナリオを考えてみましょう。
次のコード スニペットは、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() メソッドを利用することです。その仕組みは次のとおりです。
たとえば、次のコード スニペットはこのメソッドを示しています。
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 中国語 Web サイトの他の関連記事を参照してください。