随机打乱一个数组的顺序。
场景:验证码之类。要求生成n位不重复的数字组合(0<n<=10)
交换是核心的点。
public class Shuffle {
public static int[] shuffle(int[] arr){
for(int i = 0;i<arr.length;i++){
int j = (int)(i + Math.floor(Math.random()*(arr.length-i)));
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
return arr;
}
public static void main(String[] args){
int [] arr = {1,2,3,4,5,6,7,8,9,0};
shuffle(arr);
for(int i = 0;i<arr.length;i++){
System.out.print(arr[i]);
}
}
}
网友评论