誰かが一度に配列からいくつかの異なる乱数をどのように選ぶことができますか? たとえば、long int配列があります。私はそれから7つの数字を選びたいと思う。すべての数字は同じであってはなりません。Java:一度に配列からいくつかの異なる乱数を選択
Random random = new Random();
int a = mixColor[random.nextInt(mixColor.length)];
int b = mixCoor[random.nextInt(mixCoor.length)];
int c = mixCoor[random.nextInt(mixCoor.length)];
int d = mixCoor[random.nextInt(mixCoor.length)];
int e = mixCoor[random.nextInt(mixCoor.length)];
while(b!=c && c!=d && b!=d) {
b = mixCoor[random.nextInt(mixCoor.length)];
c = mixCoor[random.nextInt(mixCoor.length)];
d = mixCoor[random.nextInt(mixCoor.length)];
}
mixColor[]
とmixCoor[]
はlong intの配列です。私はこのようにすることができますが、もし私がより多くの数字を選びたいなら、これは本当に複雑になります。私もそれらを並べ替える必要があります。誰かが良いアイデアを得る?当然の
あなたのコレクションの大きさに応じて、シャッフルを使用して、必要に応じて最初のいくつかの要素を取り上げることができます。あなたはおそらくこれをベンチマークしたいと思うかもしれません。あなたのコレクションは十分に大きく、シャッフルが遅くなる可能性があります。それで、あなたはこれから抜け出すシンプルさを取り消します。ここには[shuffle]の仕様があります(http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Collections.html#shuffle%28java.util.List%29) –
より良い'Random'番号のgenを使用して、選択されたリストにすでに生成されたインデックスに番号があるかどうかを確認する方法があります。 'Collections'を使用してソート – Jon