日期:2014-05-18  浏览次数:20637 次

java随机数困惑
每个星期都要生成10万个8位数的随机数,我现在是生成的每个随机数都去和数据库比对,如果不重复就插入数据库。请问随着数据量越来越大,哪个高手有好办法,不和数据库比对,就能产生和以前不重复的10万条数据。请高手帮帮忙啊。

------解决方案--------------------
想要前端速度快后端就得多做工作
提供一个思路:
生成一个所有8位数的表
剔除已存储的数据
为剩余的数建一个索引 打乱顺序(oracle的话可以用SYS_GUID())
每次从这个表中取数插入存储表并删除取出的数

------解决方案--------------------
我觉得其实你可以放MashMap 里
每次放的时候 从
int key = /*...*/;//你随机产生一把
到MAP里面用key get 一把
如果为null 说明 没有产生过
如果不为null 说明已经重复
再去产生一把随机数