Java 中 Collections.shuffle() 方法详解

Collections.shuffle() 是 Java 中一个常用的方法,用于随机打乱列表元素的顺序。该方法使用 Fisher-Yates 算法来实现随机排序。

方法签名:

public static void shuffle(List<?> list)

参数:

  • list: 需要随机打乱的列表。

返回值:

  • 该方法没有返回值,但会直接修改传入的列表,将其元素顺序随机打乱。

示例:

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class ShuffleExample {
    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<>();
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        numbers.add(4);
        numbers.add(5);

        System.out.println("原始列表:" + numbers);

        Collections.shuffle(numbers);

        System.out.println("打乱后的列表:" + numbers);
    }
}

输出:

原始列表:[1, 2, 3, 4, 5]
打乱后的列表:[3, 1, 5, 4, 2]

Fisher-Yates 算法:

Fisher-Yates 算法是一种高效且广泛应用于随机排序的算法。它通过遍历列表,对每个元素进行随机交换,最终实现随机排序。

具体步骤:

  1. 从列表最后一个元素开始遍历,到第一个元素结束。
  2. 对当前遍历到的元素,随机选择一个索引(包括自身)。
  3. 将当前元素与随机选择的索引处的元素进行交换。

总结:

Collections.shuffle() 方法是 Java 中用于随机打乱列表元素顺序的一个便捷方法,其底层使用 Fisher-Yates 算法实现。在需要随机排序列表元素时,使用该方法可以方便快捷地完成操作。

Java 中 Collections.shuffle() 方法详解

原文地址: https://www.cveoy.top/t/topic/mJ7D 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录