问题描述
我正在使用 Java Faker 并希望生成一系列唯一的随机邮政编码。 Python 和 Ruby 支持 unique
关键字。但我不知道如何在 Java 中完成这项工作。是否支持此功能?
Java 代码如下:
// Not guaranteed to be unique
String zipCode = faker.address().zipCode()
import faker
fake = faker.Faker()
number = fake.unique.random_int()
# 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);
...
这可能比本地实现慢——或者不是——但它会给你你需要的东西。