如何在Java中随机播放数组?
有两种方法可以对int数组进行随机排序(随机化数组中元素的顺序),一种方法是使用Collections.shuffle()方法,另一种方法是对数组元素进行操作。
方法1:随机排列数组中的元素
这是灵活的,并且易于更改以适合您的应用程序。
输入:一个int数组
输出:一个随机数组(以随机顺序)
public static int[] RandomizeArray(int[] array){
Random rgen = new Random(); //随机数生成器
for (int i=0; i<array.length; i++) {
int randomPosition = rgen.nextInt(array.length);
int temp = array[i];
array[i] = array[randomPosition];
array[randomPosition] = temp;
}
return array;
}
您还可以定义一个方法,其输入是数组的范围,如下所示:
输入:int数组的范围
输出:随机重新排列的数组
例如,在给定a = 1和b = 10的情况下,该方法返回经过改组的数组,例如{2 5 6 7 9 8 3 1 10 4}。
public static int[] RandomizeArray(int a, int b){
Random rgen = new Random(); //随机数生成器
int size = b-a+1;
int[] array = new int[size];
for(int i=0; i< size; i++){
array[i] = a+i;
}
for (int i=0; i<array.length; i++) {
int randomPosition = rgen.nextInt(array.length);
int temp = array[i];
array[i] = array[randomPosition];
array[randomPosition] = temp;
}
for(int s: array)
System.out.println(s);
return array;
}
方法2:Java Collection.shuffle()方法
//创建一个数组
Integer[] array = new Integer[]{1, 2, 3, 4};
//int[] array = new int[]{1, 2, 3, 4}; //不起作用
//随机排列数组
List<Integer> l = Arrays.asList(array);
System.out.println(l);
Collections.shuffle(l);
System.out.println(l);
上面的代码打印出一个随机的整数列表。如果需要数组输出,则可以转换为数组。