您的位置:首页 > 编程语言 > Java开发

Java 唯一ID生成器

2018-02-06 16:41 351 查看

前言:

     前段时间,写了一个ID 生成器,发在群里,结果遭到别人嘲笑,心有不甘,于是思来想去,决定在重新写一个ID生成器。此方法生成的ID理论上也是会有重复,但是这个概率太低太低,低到可以忽略不计。

原理:

使用当前时间戳+指定长度的随机数,并随机打乱字符串。可以生成指定长度的纯数字的ID。

具体实现代码:

/**
* 普通Id生成器,用时间戳生成+指定位随机数生成,
* 此方法用于单机应用并且并发量不高的情况之下
*
* @return
*/
public static String getId() {
//获取当前时间戳
String str = String.valueOf(System.currentTimeMillis());
List list = new ArrayList();
//将时间戳放入到List中
for (Character s : str.toCharArray()) {
list.add
4000
(s.toString());
}
//随机打乱
Collections.shuffle(list);
//拼接字符串,并添加2(自定义)位随机数
return String.join("", list) + randomNumber(2);
}

/**
* 生成指定长度的一个数字字符串
*
* @param num
* @return
*/
public static String randomNumber(int num) {
if (num < 1) {
num = 1;
}
Random random = new Random();
StringBuilder str = new StringBuilder();
for (int i = 0; i < num; i++) {
str.append(random.nextInt(10));
}
return str.toString();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: