在Java中生成唯一标识,可以获得当前的系统时间,也可以使用UUID,和NanoID。
NanoID,利用统一算法,生成一个一个唯一的标识。
支持多种语言。Java C# JavaScript等 。
NanoID用UUID相比:
1 算法不同
NanoID采用统一算法,相对UUID,效率更高
2 NanoID小
UUID的字母表有36个字符
NanoID的字母表只有21个字符
3 NanoID可以用户自定义字母表,自定义长度。
在Java中间实现NanoID
1 下载jar包
jnanoid.jar
2 代码
package com.wanmait; import java.util.Random; import java.util.UUID; import com.aventrix.jnanoid.jnanoid.NanoIdUtils; public class ID { public String getNanoID() { char c[] = {'a','b','c'}; String nanoId = NanoIdUtils.randomNanoId(); return nanoId; } public String getUUID() { String uuid = UUID.randomUUID().toString(); return uuid; } public static void main(String[] args) { // TODO Auto-generated method stub ID id = new ID(); String uuid = id.getUUID(); System.out.println("UUID:"+uuid); String nanoid = id.getNanoID(); System.out.println("NanoId:"+nanoid); } }
执行结果:
另外NanoID自定义字母表和长度,
例如:
package com.wanmait; import java.util.Random; import java.util.UUID; import com.aventrix.jnanoid.jnanoid.NanoIdUtils; public class ID { public String getNanoID() { char c[] = {'a','b','c'}; String nanoId = NanoIdUtils.randomNanoId(new Random(),c,5); //c是提供的字母表 5是长度 return nanoId; } public static void main(String[] args) { // TODO Auto-generated method stub ID id = new ID(); String nanoid = id.getNanoID(); System.out.println("NanoId:"+nanoid); } }
之星两次,生成不同的标识
0条评论
点击登录参与评论