使用 Java Faker 生成唯一的随机邮政编码

问题描述

我正在使用 Java Faker 并希望生成一系列唯一的随机邮政编码。 Python 和 Ruby 支持 unique 关键字。但我不知道如何在 Java 中完成这项工作。是否支持功能

Java 代码如下:

// Not guaranteed to be unique
String zipCode = faker.address().zipCode()

Python example

import faker
fake = faker.Faker()
number = fake.unique.random_int()

Ruby example

# This will return a unique name every time it is called
Faker::Name.unique.name

解决方法

查看源代码(您链接到的),Java 实现似乎不支持 unique,因此您需要自己维护它。使用 java.util.Set<String> 非常简单:

Set<String> zipCodes = new Set<>();
...
String zipCode;
do {
    zipCode = faker.address().zipCode();
} while (zipCodes.contains(zipCode));
zipCodes.add(zipCode);
...

这可能比本地实现慢——或者不是——但它会给你你需要的东西。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...