重複の可能性:
JavaでUUIDを生成する
製品の裏側で使用されているような9桁の一意のコードを生成してそれらを識別する必要があります。
コードは繰り返さないようにする必要があり、番号間に相関関係がないようにする必要があります。また、コードはすべて整数である必要があります。
Javaを使用してそれらを生成し、同時にデータベースに挿入する必要があります。
重複の可能性:
JavaでUUIDを生成する
製品の裏側で使用されているような9桁の一意のコードを生成してそれらを識別する必要があります。
コードは繰り返さないようにする必要があり、番号間に相関関係がないようにする必要があります。また、コードはすべて整数である必要があります。
Javaを使用してそれらを生成し、同時にデータベースに挿入する必要があります。
9桁の乱数を生成し、データベースと照合して一意性を確認します。
100000000 + random.nextInt(900000000)
また
String.format("%09d", random.nextInt(1000000000))
CommonsLangのrandomNumeric
方法を使用します。
それでも、データベースの一意性を確認する必要があります。
int noToCreate = 1_000; // the number of numbers you need
Set<Integer> randomNumbers = new HashSet<>(noToCreate);
while (randomNumbers.size() < noToCreate) {
// number is only added if it does not exist
randomNumbers.add(ThreadLocalRandom.current().nextInt(100_000_000, 1_000_000_000));
}
これを行うのは少し奇妙なことですが、それでも、互いにほとんど関係のない一意の9桁の数字を使用できると思います。
お願いしますthere should have no correlation between the numbers
public class NumberGen {
public static void main(String[] args) {
long timeSeed = System.nanoTime(); // to get the current date time value
double randSeed = Math.random() * 1000; // random number generation
long midSeed = (long) (timeSeed * randSeed); // mixing up the time and
// rand number.
// variable timeSeed
// will be unique
// variable rand will
// ensure no relation
// between the numbers
String s = midSeed + "";
String subStr = s.substring(0, 9);
int finalSeed = Integer.parseInt(subStr); // integer value
System.out.println(finalSeed);
}
}