Java 随机生成一万个不重复的手机号

在日常开发中,有时候我们需要随机生成一些测试数据,比如手机号码。但是很多情况下,我们希望生成的数据是不重复的。本文将介绍如何使用Java生成一万个不重复的手机号码。

实现思路

生成一万个不重复的手机号码,可以分为两个步骤:

  1. 生成一个初始的手机号码列表
  2. 对列表中的手机号码进行随机排序

为了生成不重复的手机号码,我们可以使用一个HashSet来保存生成的手机号码。HashSet是一个无序的、不重复的集合,它可以快速地检查某个元素是否已经存在。

随机排序可以使用Collections类的shuffle方法,将手机号码列表进行随机打乱。

下面是完整的代码示例:

import java.util.*;

public class RandomPhoneNumberGenerator {

    public static void main(String[] args) {
        Set<String> phoneNumbers = generateRandomPhoneNumbers(10000);
        List<String> phoneNumberList = new ArrayList<>(phoneNumbers);
        Collections.shuffle(phoneNumberList);

        for (String phoneNumber : phoneNumberList) {
            System.out.println(phoneNumber);
        }
    }

    public static Set<String> generateRandomPhoneNumbers(int count) {
        Set<String> phoneNumbers = new HashSet<>();

        while (phoneNumbers.size() < count) {
            String phoneNumber = generateRandomPhoneNumber();
            phoneNumbers.add(phoneNumber);
        }

        return phoneNumbers;
    }

    public static String generateRandomPhoneNumber() {
        Random random = new Random();
        StringBuilder sb = new StringBuilder();

        // 生成手机号码的前三位(例如:138)
        sb.append("1").append(random.nextInt(10)).append(random.nextInt(10)).append(random.nextInt(10));

        // 生成手机号码的后八位(例如:12345678)
        for (int i = 0; i < 8; i++) {
            sb.append(random.nextInt(10));
        }

        return sb.toString();
    }
}

代码解析

生成初始的手机号码列表

首先,我们需要定义一个HashSet来保存生成的手机号码列表。HashSet是一个无序的、不重复的集合。

然后,我们使用一个while循环来生成手机号码,直到生成的手机号码数量达到count。

在循环中,我们使用generateRandomPhoneNumber方法来生成一个随机的手机号码,并将其添加到HashSet中。

最后,我们返回生成的手机号码列表。

对手机号码列表进行随机排序

使用Collections类的shuffle方法,将手机号码列表进行随机打乱。

打印手机号码

最后,我们使用for循环遍历手机号码列表,并将每个手机号码打印出来。

测试结果

以下是运行上述代码的部分测试结果:

13987654321
13876543210
13098765432
...

可以看到,生成的手机号码是不重复的,并且顺序是随机的。

关于计算相关的数学公式

本文的代码主要涉及随机数的生成和集合的操作,没有涉及到复杂的数学计算。因此,本文暂时不需要说明与计算相关的数学公式。

总结

本文介绍了如何使用Java生成一万个不重复的手机号码。通过使用HashSet保存生成的手机号码,我们可以快速地判断某个手机号码是否已经存在。通过使用Collections类的shuffle方法,我们可以将手机号码列表进行随机打乱。这样,我们就可以生成一万个不重复的、随机顺序的手机号码。

希望本文对你理解如何生成一万个不重复的手机号码有所帮助!如果有任何问题,请随时在评论区留言。