나는 methode generateCustumerId()를 호출 할 때마다 고유 ID를 생성하려고합니다. 생성 된 ID는 8 자 또는 8 자 미만이어야합니다. 이 요구 사항은 데이터 파일에 저장해야하며 스키마는이 ID에 대해 8 자 길이로 결정되므로 필요합니다.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;
}
}
옵션 2는 벌목에 대한
public static String generateCustumerId() {
String ownerId = UUID.randomUUID().toString();
System.out.println("ownerId " + ownerId);
return ownerId
}
자르면 언제든지 ID가 고유하지 않을 가능성이 더 높습니다. – loudiyimo
언제든지 자신을 8 자로 제한 할 수 있습니다. 더 이상 고유하지 않게 될 가능성이 있습니다. 실제로 GUID가 고유하지 않은 경우가 있습니다. "동일한 숫자가 두 번 생성 될 확률은 극히 적습니다"-하지만 그럴 가능성은 없습니다. –