每次我调用方法 generateCustumerId() 时,我都想生成唯一的 ID。生成的 id 长度必须为 8 个字符或少于 8 个字符。这个要求是必要的,因为我需要将它存储在一个数据文件中,并且这个 id 的模式被确定为 8 个字符长。
选项 1 工作正常。我想使用 UUID 而不是选项 1。问题是 UUID 生成的 id 有很多字符。有人知道如何生成小于 99999999 的唯一 ID 吗?
选项1
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
public class CustomerIdGenerator {
private static Set<String> customerIds = new HashSet<String>();
private static Random random = new Random();
// XXX: replace with java.util.UUID
public static String generateCustumerId() {
String customerId = null;
while (customerId == null || customerIds.contains(customerId)) {
customerId = String.valueOf(random.nextInt(89999999) + 10000000);
}
customerIds.add(customerId);
return customerId;
}
}
option2 生成一个过长的唯一 id
public static String generateCustumerId() {
String ownerId = UUID.randomUUID().toString();
System.out.println("ownerId " + ownerId);
return ownerId
}