고유 한 ID를 만들기 위해 비트를 오랫동안 조립하려면 어떻게해야합니까?
문제
Java에서 비교적 고유 한 ID를 제공 할 유틸리티를 작성하고 싶습니다. 타임 스탬프 + y 비트의 x 비트와 같은 매우 간단한 것.
따라서 다음 방법을 어떻게 구현합니까?
long getUniqueID()
{
long timestamp = System.currentTimeMillis();
long random = some random long
...
return id;
}
보너스
내 ID를 형성하는 데 사용할 수있는 다른 쉽게 얻을 수있는 정보에 대한 제안이 있습니까?
참고 : 나는 Guids를 알고 있으며 Java는 UUID 클래스를 가지고 있지만 길이가 128 비트 인 것을 원하지 않습니다.
해결책
필요하지 않은 비트를 자르기 만하면됩니다.
return java.util.UUID.randomUUID().getLeastSignificantBits();
다른 팁
동일한 JVM에서 독특한 경우 충분하다면 이와 같은 일이 작업을 수행해야합니다.
public class UniqueID {
static long current= System.currentTimeMillis();
static public synchronized long get(){
return current++;
}
}
제휴하지 않습니다 StackOverflow