我正在寻找在Java中创建唯一ID作为字符串的最佳方法。
任何指导都很感激,谢谢。
我应该提到我使用的是Java 5。
我正在寻找在Java中创建唯一ID作为字符串的最佳方法。
任何指导都很感激,谢谢。
我应该提到我使用的是Java 5。
当前回答
如果你想要简短的、人类可读的id,并且只需要它们在每次JVM运行时是唯一的:
private static long idCounter = 0;
public static synchronized String createID()
{
return String.valueOf(idCounter++);
}
编辑:评论中建议的替代方案-这依赖于底层的线程安全“魔法”,但更可扩展,同样安全:
private static AtomicLong idCounter = new AtomicLong();
public static String createID()
{
return String.valueOf(idCounter.getAndIncrement());
}
其他回答
java.util.UUID: toString()
创建UUID。
String uniqueID = UUID.randomUUID().toString();
具有计数信息的唯一ID
import java.util.concurrent.atomic.AtomicLong;
public class RandomIdUtils {
private static AtomicLong atomicCounter = new AtomicLong();
public static String createId() {
String currentCounter = String.valueOf(atomicCounter.getAndIncrement());
String uniqueId = UUID.randomUUID().toString();
return uniqueId + "-" + currentCounter;
}
}
如果你想要简短的、人类可读的id,并且只需要它们在每次JVM运行时是唯一的:
private static long idCounter = 0;
public static synchronized String createID()
{
return String.valueOf(idCounter++);
}
编辑:评论中建议的替代方案-这依赖于底层的线程安全“魔法”,但更可扩展,同样安全:
private static AtomicLong idCounter = new AtomicLong();
public static String createID()
{
return String.valueOf(idCounter.getAndIncrement());
}
使用Java生成唯一ID
UUID是在Java中生成唯一ID的最快和最简单的方法。
import java.util.UUID;
public class UniqueIDTest {
public static void main(String[] args) {
UUID uniqueKey = UUID.randomUUID();
System.out.println (uniqueKey);
}
}