メソッド generateCustumerId() を呼び出すたびに、一意の ID を生成したいと考えています。生成された ID は、8 文字または 8 文字未満である必要があります。この要件は、データ ファイルに格納する必要があり、スキーマがこの ID に対して 8 文字であると判断されるため必要です。
オプション 1 は正常に機能します。オプション 1 の代わりに、UUID を使用したいと考えています。問題は、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
}