我正在寻找在Java中创建唯一ID作为字符串的最佳方法。

任何指导都很感激,谢谢。

我应该提到我使用的是Java 5。


当前回答

使用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);
  }
}

其他回答

java.util.UUID: 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;
    }
}

在java中有三种生成唯一id的方法。

1) UUID类提供了一种生成唯一id的简单方法。

 UUID id = UUID.randomUUID();
 System.out.println(id);

2) securerrandom和MessageDigest

//initialization of the application
 SecureRandom prng = SecureRandom.getInstance("SHA1PRNG");

//generate a random number
 String randomNum = new Integer(prng.nextInt()).toString();

//get its digest
 MessageDigest sha = MessageDigest.getInstance("SHA-1");
 byte[] result =  sha.digest(randomNum.getBytes());

System.out.println("Random number: " + randomNum);
System.out.println("Message digest: " + new String(result));

3)使用java.rmi.server.UID

UID userId = new UID();
System.out.println("userId: " + userId);

创建UUID。

String uniqueID = UUID.randomUUID().toString();

使用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);
  }
}