可能重复:
Generate UUID in Java
我需要生成一个9位数的唯一代码,就像产品背面用来识别它们一样。
代码应该不重复,它们之间应该没有相关性。而且代码应该都是整数。
我需要使用java生成它们并同时将它们插入到数据库中。
答案 0 :(得分:4)
生成一个9位数的随机数,并针对数据库查找唯一性。
100000000 + random.nextInt(900000000)
或
String.format("%09d", random.nextInt(1000000000))
答案 1 :(得分:1)
使用Commons Lang的randomNumeric
方法:
但是,您必须检查数据库的唯一性。
答案 2 :(得分:0)
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));
}
答案 3 :(得分:-1)
我知道这样做有点奇怪,但我仍然认为你可以拥有独特的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);
}
}