高分悬赏:Java语言怎么把一个有序的列表转换成随机的列表呢

高分悬赏: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));
    }
}