ale*_*lex 0 java arrays indices
我已经看过Randomize或shuffle数组Randomize或shuffle数组
我不确定这是否是最佳方法.
我想随机化一个包含3个项目的数组的索引.
12 4 5
int numbers[] = new int[3];
Run Code Online (Sandbox Code Playgroud)
我尝试使用Maths.Random
int randomoption2 = opmin +(int)(Math.random()*((opmax - opmin)+ 1));
但是我有一个重复索引值的问题.随机化指数的最佳方法是什么,所以没有重复.
例如
a[1] = 2;
Run Code Online (Sandbox Code Playgroud)
我不希望数组中的两个元素返回索引为1
http://www.exampledepot.com/egs/java.util/coll_Shuffle.html
public class randomorder {
public static void main(String [] args)
{
randomorder();
System.out.println(randomorder());
}
public static ArrayList randomorder(){
ArrayList nums = new ArrayList();
nums.add(1);
nums.add(2);
nums.add(3);
Collections.shuffle(nums);
return nums;
}
}
Run Code Online (Sandbox Code Playgroud)
我现在需要将每个数字存储在变量中,以便输出它们
的System.out.println(项[0]);
Integer[] numbers = { 1, 2, 3, 4, 5 };
Collections.shuffle(Arrays.asList(numbers));
Run Code Online (Sandbox Code Playgroud)
看到它在线工作:ideone
它在内部使用Fisher-Yates shuffle.这是一种有效的改组算法,不会给你重复.
有关
| 归档时间: |
|
| 查看次数: |
1315 次 |
| 最近记录: |