Java 中 Collections.shuffle() 方法详解
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 算法是一种高效且广泛应用于随机排序的算法。它通过遍历列表,对每个元素进行随机交换,最终实现随机排序。
具体步骤:
- 从列表最后一个元素开始遍历,到第一个元素结束。
- 对当前遍历到的元素,随机选择一个索引(包括自身)。
- 将当前元素与随机选择的索引处的元素进行交换。
总结:
Collections.shuffle() 方法是 Java 中用于随机打乱列表元素顺序的一个便捷方法,其底层使用 Fisher-Yates 算法实现。在需要随机排序列表元素时,使用该方法可以方便快捷地完成操作。
原文地址: https://www.cveoy.top/t/topic/mJ7D 著作权归作者所有。请勿转载和采集!