高分悬赏:Java语言怎么把一个有序的列表转换成随机的列表呢
高分悬赏:Java语言怎么把一个有序的列表转换成随机的列表呢
有序本身就是一种随机
要不就用随机数定位列表中的索引,然后把定位到的数据存储到新列表中
详情参考java api Collections.shuffle
import java.util.Arrays;
import java.util.Random;
/**
* Created by 燃烧杯 on 2018/5/12.
*/
public class ArrayUtils {
private static Random rand = new Random();
public static <T> void swap(T[] a, int i, int j){
T temp = a[i];
a[i] = a[j];
a[j] = temp;
}
public static <T> void shuffle(T[] arr) {
int length = arr.length;
for ( int i = length; i > 0; i-- ){
int randInd = rand.nextInt(i);
swap(arr, randInd, i - 1);
}
}
public static void main(String[] args) {
Integer[] arr = {1, 2, 3, 4, 5, 6, 7};
shuffle(arr);
System.out.println(Arrays.toString(arr));
}
}