随机ID生成的几种 方式整理(现阶段基础)

简介: 随机ID生成的几种 方式整理(现阶段基础)

代码和注释都有大家根据自己需求自取即可;

package com.example.democrud.democurd.uuid;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
import java.util.UUID;
public class uuid {
    public static void main(String[] args) {
        System.out.println("----------------------random随机数--------------------");
         //random随机数
         Random random = new Random();
         //取(10000-99999)的数,random出来0-89999的数,再加10000就达到效果。
         //3个8 代表获取的随机的值 是3位数的
         int id=random.nextInt(8888)+1000;
         System.out.println("random随机数==>"+id);
        UUID uuid = UUID.randomUUID();
        System.out.println("原生uuid==>"+uuid);
        System.out.println("----------------------UUID随机数 常用--------------------");
        String str = uuid.toString();
        String uuidStr = str.replace("-", "");
        System.out.println(uuidStr);
        System.out.println("----------------------UUID随机数 根据一个符合UUID格式的字符串获取--------------------");
        UUID uuid1 = UUID.fromString("095c64fe-c5bf-11ea-aec6-a402b9e2b04d");
        System.out.println(uuid1);
        System.out.println("----------------------UUID随机数 根据字符串获取--------------------");
        UUID uuid2 = UUID.nameUUIDFromBytes("身份证号码".getBytes());
        System.out.println(uuid2);
        UUID uuid21 = UUID.nameUUIDFromBytes("身份证号码".getBytes());
        System.out.println(uuid21);
        System.out.println("通过demo得出相同字符得除的加密是相同的");
        UUID uuid3 = UUID.nameUUIDFromBytes("身份证号码11".getBytes());
        System.out.println(uuid3);
        System.out.println("----------------------生成随机ID--------------------");
         //生成6位随机数字
        System.out.println((int)((Math.random()*9+1)*100000));
        //生成5位随机数字
        System.out.println((int)((Math.random()*9+1)*10000));
        //生成4位随机数字
        System.out.println((int)((Math.random()*9+1)*1000));
        //生成3位随机数字
        System.out.println((int)((Math.random()*9+1)*100));
        //生成2位随机数字
        System.out.println((int)((Math.random()*9+1)*10));
        //生成1位随机数字
        System.out.println((int)((Math.random()*9+1)));
        System.out.println("----------------------生成时间UUID随机数--------------------");
        Date date=new Date();
        DateFormat format = new SimpleDateFormat("yyyyMMdd");
        String time = format.format(date);
        int hashCodeV = UUID.randomUUID().toString().hashCode();
        if (hashCodeV < 0) {//有可能是负数
            hashCodeV = -hashCodeV;
        }
        // 0 代表前面补充0
        // 11 代表长度为11 时间后面值的长度,他的长度的增加与减少是靠增加0 与去掉0来处理的
        // d 代表参数为正数型
        System.out.println("当前时间年月日"+time);
        System.out.println(time + String.format("%011d", hashCodeV));
        // 13 代表长度为13 不足的需要增加0补充
        System.out.println(time + String.format("%013d", hashCodeV));
    }
}

运行结果如下:

----------------------random随机数--------------------
random随机数==>1289
原生uuid==>97bc24f0-d12e-4184-b970-46a34dd53f06
----------------------UUID随机数 常用--------------------
97bc24f0d12e4184b97046a34dd53f06
----------------------UUID随机数 根据一个符合UUID格式的字符串获取--------------------
095c64fe-c5bf-11ea-aec6-a402b9e2b04d
----------------------UUID随机数 根据字符串获取--------------------
84e0cb5d-57ed-395b-8cc0-4b4ab9a7997b
84e0cb5d-57ed-395b-8cc0-4b4ab9a7997b
通过demo得出相同字符得除的加密是相同的
4b5b1bc6-86d1-390e-af96-0acd922f308f
----------------------生成随机ID--------------------
112926
52122
9081
109
43
1
----------------------生成时间UUID随机数--------------------
当前时间年月日20230202
2023020200914093716
202302020000914093716

不足之处多多谅解;有其他更好的方式,欢迎留言;


相关文章
|
23天前
|
编译器 C++
我的C++奇迹之旅:值和引用的本质效率与性能比较1
我的C++奇迹之旅:值和引用的本质效率与性能比较
|
23天前
|
存储 分布式计算 安全
我的C++奇迹之旅:值和引用的本质效率与性能比较2
我的C++奇迹之旅:值和引用的本质效率与性能比较
|
23天前
|
存储 Java C#
静态字段科普:从原理到代码实践
静态字段科普:从原理到代码实践
19 0
|
23天前
|
安全
HASH哈希竞猜游戏系统开发指南详细/规则设计/成熟案例/源码程序
HASH哈希竞猜游戏是一种基于密码学的游戏,参与者需要根据给定的哈希值来猜测对应的原始数值。
|
23天前
|
人工智能
AI批量写文章伪原创:基于ChatGPT长文本模型,实现批量改写文章、批量回答问题(长期更新)
AI批量写文章伪原创:基于ChatGPT长文本模型,实现批量改写文章、批量回答问题(长期更新)
139 1
|
23天前
|
存储 算法 安全
【云计算与大数据技术】数据分片哈希算法、路由算法、复制算法的讲解(图文解释 超详细)
【云计算与大数据技术】数据分片哈希算法、路由算法、复制算法的讲解(图文解释 超详细)
109 0
|
存储 JavaScript 前端开发
(小说版)【简历优化平台-3】随机唯一标识,贯穿时间长河
(小说版)【简历优化平台-3】随机唯一标识,贯穿时间长河
|
存储 算法 NoSQL
分布式 ID 生成方案总结整理
分布式 ID 生成方案总结整理
|
缓存 算法 NoSQL
分布式全局唯一ID (学习总结---从入门到深化)
日常开发中,我们需要对系统中的各种数据使用 ID 唯一表示,比如 用户 ID 对应且仅对应一个人,商品 ID 对应且仅对应一件商品,订 单 ID 对应且仅对应一个订单。
320 0
分布式全局唯一ID (学习总结---从入门到深化)
|
存储 监控 搜索推荐
我感受到的排序机制参考
假期重新把之前在新浪博客里面的文字梳理了下,搬到这里。这
136 0

热门文章

最新文章