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(); }
相关文章推荐
- 分布式唯一ID生成器Twitter 的 Snowflake idworker java版本
- 分布式唯一ID生成器Twitter 的 Snowflake idworker java版本
- java 实现唯一ID生成器
- 基于百度的UidGenerator改造的全局唯一id生成器
- [Java--算法]--生成全局唯一的Id(IdGen)
- java 生成唯一ID
- java 32位唯一ID
- Java生成唯一的ID
- Java用于生成唯一ID
- 【知识积累】Java中的UUID类(生成唯一ID)
- Java工具类:获取long型唯一ID
- UidGenerator:百度出品的基于 Snowflake 算法的唯一 ID 生成器
- 全局唯一ID生成器浅析IdGen (1)
- 两种方法利用Java生成唯一ID,取当前时间与字母随机组合,并发少的情况足以胜任
- JAVA生成全局唯一ID 使用 java.util.UUID
- ID生成器,Twitter的雪花算法(Java)
- Java中的UUID生成全球唯一的ID
- java根据时间生成唯一ID
- 教你用JAVA ID生成器去生成逻辑主键