如何在Java程序中写一个方法可随机生成12位数字,且永远不会重复,唯一的。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Java程序中写一个方法可随机生成12位数字,且永远不会重复,唯一的。相关的知识,希望对你有一定的参考价值。
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyMMddHHmmss");System.out.println(sdf.format(new java.util.Date()));
生成12 位那就用时间机制把,用 24小时格式 "年月日时分秒" 生成无重复! 参考技术A 一楼的方法理论上可以实现,但这毫无意义嘛,12位数字只能用long来存,总共1000亿个数字,long型大小为64位即8B,而8000亿B换算成GB也有745G之多,谁家内存受得了啊,硬盘都不一定扛得住。 参考技术B math.random()产生0到1的随机数,乘以一个100,000,000,000就是一个12位的随机数,没产生一个就把它放到一个vector中,下次产生随机数之前跟vector中的数一一比较有相同的就继续生成就行啦追问
我想要的是代码,就一个方法,我不是很熟悉怎么用
参考技术C 直接用uuid。。。要自己写的话 也挺费劲 可以获取MAC地址 通过MAC地址进行一定的计算生成一个12位数字如何生成随机的五位数字Java [重复]
【中文标题】如何生成随机的五位数字Java [重复]【英文标题】:How to generate a random five digit number Java [duplicate] 【发布时间】:2011-12-10 12:58:27 【问题描述】:可能重复:Java: generating random number in a range
我需要一点帮助。
我将使用什么代码来创建一个 5 位长且以 1 或 2 开头的随机数?
为了用作公司员工ID?
【问题讨论】:
RandomStringUtils.randomNumeric(5) 【参考方案1】:取决于你如何处理类似的问题:
public int gen()
Random r = new Random( System.currentTimeMillis() );
return 10000 + r.nextInt(20000);
或类似的东西(您可能想要方法的 Random 对象的实例化,但为了简单起见,我只是把它放在这里):
public int gen()
Random r = new Random( System.currentTimeMillis() );
return ((1 + r.nextInt(2)) * 10000 + r.nextInt(10000));
这个想法是 1 + nextInt(2) 应该总是给出 1 或 2。然后将其乘以 10000 以满足您的要求,然后在 [0..9999] 之间添加一个数字。
以下是一些示例输出:
14499
12713
14192
13381
14501
24695
18802
25942
21558
26100
29350
23976
29045
16170
23200
23098
20465
23284
16035
18628
【讨论】:
请不要使用此方法。以我的经验,这不会生成随机数。请参阅此线程以获得可靠的解决方案***.com/questions/363681/…以上是关于如何在Java程序中写一个方法可随机生成12位数字,且永远不会重复,唯一的。的主要内容,如果未能解决你的问题,请参考以下文章