Java 唯一ID生成器「建议收藏」

Java 唯一ID生成器「建议收藏」前言:   前段时间,写了一个ID生成,发在群里,结果遭到别人嘲笑,心有不甘,于是思来想去,决定在重新写一个ID生成器。此方法生成的ID理论上也是会有重复,但是这个概率太低太低,低到可以忽略不计。原理:使用当前时间戳+指定长度的随机数,并随机打乱字符串。可以生成指定长度的纯数字的ID。具体实现代码:/***普通Id生成器,用时间戳生成+2位随机数生成,*此方法

大家好,又见面了,我是你们的朋友全栈君。

前言:

     前段时间,写了一个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(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();
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148971.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 嵌套评论的数据库表设计

    嵌套评论的数据库表设计

    2021年6月20日
    123
  • 显卡机器linux 6卡挖矿,显卡挖矿是什么意思?购买显卡矿机应该注意什么?

    显卡机器linux 6卡挖矿,显卡挖矿是什么意思?购买显卡矿机应该注意什么?提到挖矿,很多人都比较感兴趣,众所周知,挖矿是除了直接交易数字货币之外,获取数字货币的唯一途径,而挖矿会根据不同的数字货币定义成不同的挖矿形式,比如说最近比较火的流动性挖矿,就是投资者抵押或锁定加密货币以换取报酬的做法,还有就是本文要说的显卡挖矿,下面小编就给大家通俗的讲解一下显卡挖矿是什么意思。显卡挖矿是什么意思?显卡挖矿其实就是用显卡去挖比特币,让显卡高负荷工作挖,淘汰了的就成了矿卡,矿卡一般…

    2022年6月10日
    44
  • elastic search数据库集群部署「建议收藏」

    elastic search数据库集群部署「建议收藏」ES数据库安装elasticasearchelasticsearch的概念:是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。它是一个建立在全文搜索引擎ApacheLucene基础上的搜索引擎,使用Java语言编写。1、elasticsearch和MongoDB/redis/memcache一样,是非关系性数据库是一个接近实时的搜索平台,从所索引这个文档到能够被搜索到只有一个轻微的延迟,企业应用定位:采用restfullapi标准的可扩展和高可用的实时数据分析

    2022年6月9日
    43
  • 深蓝病毒关闭端口_445端口关闭方法

    深蓝病毒关闭端口_445端口关闭方法计算机被永恒之蓝感染后会出一些不明所以的问题,我电脑上不定时蓝屏,同事电脑上也是,网上搜索了解决方法,包括以下几种:1)使用360杀毒,记得用最新的版本。2)自己下windows对应补丁。3)关闭445端口。——————————————————-注意:(1)关闭了445端口要重启后才会…

    2022年10月17日
    4
  • HTTP请求错误400、401、402、403、404、405、406、407、412、414、500、501、502解析

    HTTP请求错误400、401、402、403、404、405、406、407、412、414、500、501、502解析

    2021年11月9日
    44
  • Redis 数据类型

    1.String(字符串)string是redis最基本的类型,一个key对应一个valuestring类型是二进制安全的,即它可以包含任何数据setkeyvalue创建一个键值对getkey得到key对应的值示例:redis127.0.0.1:6379&gt;setnamezhangsanOKredis127….

    2022年4月9日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号