我正在寻找在Java中创建唯一ID作为字符串的最佳方法。
任何指导都很感激,谢谢。
我应该提到我使用的是Java 5。
我正在寻找在Java中创建唯一ID作为字符串的最佳方法。
任何指导都很感激,谢谢。
我应该提到我使用的是Java 5。
当前回答
具有计数信息的唯一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;
}
}
其他回答
String name,password;
public int idGen() {
int id = this.name.hashCode() + this.password.hashCode();
int length = String.valueOf(id).length();
int Max_Length = 5;
if(String.valueOf(id).length()>Max_Length)
{
id = (int) (id /Math.pow(10.0,length - Max_Length ));
}
return id;
}
java.util.UUID: toString()
这为UUID生成增加了更多的随机性,但确保每个生成的id都具有相同的长度
import org.apache.commons.codec.digest.DigestUtils;
import java.util.UUID;
public String createSalt() {
String ts = String.valueOf(System.currentTimeMillis());
String rand = UUID.randomUUID().toString();
return DigestUtils.sha1Hex(ts + rand);
}
具有计数信息的唯一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;
}
}
创建UUID。
String uniqueID = UUID.randomUUID().toString();