Java基础之List乱序排列

Java中乱序排序很常见,给定一个数组,要求把数组内元素的顺序随机打乱,然后输出。

有以下几种方法:

1.使用Collections.shuffle实现

List User = new ArrayList();
User.add("a");
User.add("b");
User.add("c");
User.add("d");
User.add("e");
//使用Collections.shuffle实现乱序排序
Collections.shuffle(User);
System.out.println(User);

2.使用交换

int[] arr = {0,1,2,3,4,5,6,7};
int length = arr.length;
for(int i=0;i 
  

3.使用randmom

/**
 * 实现乱序排序
 * @param arr
 * @return
 */
public static int []  shuffle(int [] arr) {
    int [] arr2 =new int[arr.length];
    int count = arr.length;
    int cbRandCount = 0;// 索引
    int cbPosition = 0;// 位置
    int k =0;
    int runCount=0;
    do {
        runCount++;
        Random rand = new Random();
        int r = count - cbRandCount;
        cbPosition = rand.nextInt(r);
        arr2[k++] = arr[cbPosition];
        cbRandCount++;
        // 将最后一位数值赋值给已经被使用的cbPosition
        arr[cbPosition] = arr[r - 1];
    } while (cbRandCount < count);
    System.out.println("运算次数:"+runCount);
    return arr2;
}

4.完整代码如下:

public class ListSortTest {
    //演示一下打乱排序
    public static void main(String[] args) {
        List User = new ArrayList();
        User.add("a");
        User.add("b");
        User.add("c");
        User.add("d");
        User.add("e");
        //1.使用Collections.shuffle实现乱序排序
        Collections.shuffle(User);
        System.out.println(User);

        //2.使用交换
        int[] arr = {0,1,2,3,4,5,6,7};
        int length = arr.length;
        for(int i=0;i 
  

5.测试结果如下图:

Java基础之List乱序排列_第1张图片

你可能感兴趣的:(Java)