在 Java 中,Collections.shuffle()
方法用于随机打乱(重新排列)一个列表中的元素。该方法属于 java.util.Collections
类,通常用于对 List 类型的集合进行随机排序。
语法:
Collections.shuffle(List<?> list)
- 参数:
list
– 需要打乱顺序的 List 集合。 - 返回值:此方法没有返回值,它直接修改传入的 List 集合。
例子:
import java.util.*;
public class ShuffleExample {
public static void main(String[] args) {
// 创建一个包含 1 到 10 的列表
List<Integer> numbers = new ArrayList<>();
for (int i = 1; i <= 10; i++) {
numbers.add(i);
}
// 打印原始列表
System.out.println("原始列表: " + numbers);
// 随机打乱列表
Collections.shuffle(numbers);
// 打印打乱后的列表
System.out.println("打乱后的列表: " + numbers);
}
}
输出:
原始列表: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
打乱后的列表: [3, 1, 10, 5, 7, 9, 4, 6, 2, 8]
额外功能:使用随机源
Collections.shuffle()
还可以接受一个额外的 Random
对象参数,用来提供自定义的随机源,这可以让你控制随机数生成的种子,进而影响打乱的结果。
import java.util.*;
public class ShuffleWithRandom {
public static void main(String[] args) {
List<Integer> numbers = new ArrayList<>();
for (int i = 1; i <= 10; i++) {
numbers.add(i);
}
// 使用自定义的 Random 对象
Random random = new Random(42); // 固定种子,保证每次执行结果相同
Collections.shuffle(numbers, random);
System.out.println("打乱后的列表: " + numbers);
}
}
说明:
Collections.shuffle()
是一个 非稳定排序,意味着它不会保留元素的原始顺序。每次调用它都会给列表带来一个新的、随机的顺序。- 如果你希望按照特定的方式进行“排序”或是更复杂的乱序操作,可以考虑使用
Comparator
或自定义排序方法。
有其他问题或需要更多关于 Collections
类的帮助吗?
发表回复