在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条评论
点击登录参与评论