📜  Java中的 Collections.shuffle() 方法和示例(1)

📅  最后修改于: 2023-12-03 15:01:52.041000             🧑  作者: Mango

Java中的 Collections.shuffle() 方法和示例

在Java中,Collections类提供了许多有用的静态方法,其中一种方法是shuffle()。shuffle()方法可以将集合中的元素随机排序。本文将介绍Collections.shuffle()方法的使用方法和示例。

使用方法

shuffle()方法有两个版本:

public static void shuffle(List<?> list)
public static void shuffle(List<?> list, Random rnd)

第一个版本允许我们将集合中的元素随机排序。第二个版本允许我们使用指定的随机数生成器,以控制随机排序。

在使用Collections.shuffle()方法之前,需要确保集合类实现了List接口,因为shuffle()方法只能用于实现了List接口的集合类。我们来看一个简单的示例:

List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
list.add("grape");

Collections.shuffle(list);

System.out.println(list); //输出随机排序后的集合

运行结果如下所示:

[banana, grape, orange, apple]

从结果可以看出,集合中的元素已经被随机重新排列。

这里我们使用了默认的随机数生成器。如果我们想使用自定义的随机数生成器,则可以使用第二个版本的shuffle()方法:

List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
list.add("grape");

Random random = new Random();
Collections.shuffle(list, random);

System.out.println(list); //输出随机排序后的集合

在第二个版本的shuffle()方法中,我们传递了一个Random对象,它将控制shuffle()方法的随机性。这里我们创建了一个Random对象,并将其传递给shuffle()方法,以生成随机排列。这将产生与默认随机生成器不同的结果。

示例

下面是一个更全面的示例,演示如何使用Collections.shuffle()方法对一个包含数字的集合进行随机排序:

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

public class ShuffleDemo {
    public static void main(String[] args) {
        // 创建一个包含数字的集合
        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);

        // 使用自定义随机数生成器进行随机排序
        Random random = new Random();
        Collections.shuffle(numbers, random);

        System.out.println("自定义随机排序后的集合:" + numbers);
    }
}

运行结果如下所示:

原始集合:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
随机排序后的集合:[10, 6, 3, 7, 4, 8, 1, 9, 2, 5]
自定义随机排序后的集合:[4, 10, 1, 9, 5, 7, 8, 2, 6, 3]
总结

本文介绍了Java中的Collections.shuffle()方法,展示了它如何在集合中随机排序元素。使用shuffle()方法,我们可以简单而快速地对集合中的元素进行随机排序。同时,我们也可以使用Random对象来控制随机排序的方式。