public final class UUID extends Object implements Serializable, Comparable<UUID>
There are multiple, variant layouts of UUIDs, but this class is based upon variant 2 of RFC 4122, the Leach-Salz variant. This class can be used to model alternate variants, but most of the methods will be unsupported in those cases; see each method for details.
Constructor and Description |
---|
UUID(long mostSigBits,
long leastSigBits)
Constructs an instance with the specified bits.
|
Modifier and Type | Method and Description |
---|---|
int |
clockSequence()
The clock sequence value of the version 1, variant 2 UUID as per RFC 4122.
|
int |
compareTo(UUID uuid)
Compares this UUID to the specified UUID.
|
boolean |
equals(Object object)
Compares this UUID to another object for equality.
|
static UUID |
fromString(String uuid)
Parses a UUID string with the format defined by
toString() . |
long |
getLeastSignificantBits()
The 64 least significant bits of the UUID.
|
long |
getMostSignificantBits()
The 64 most significant bits of the UUID.
|
int |
hashCode()
Returns a hash value for this UUID that is consistent with the
equals(Object) method. |
static UUID |
nameUUIDFromBytes(byte[] name)
Generates a variant 2, version 3 (name-based, MD5-hashed) UUID as per RFC 4122.
|
long |
node()
The node value of the version 1, variant 2 UUID as per RFC 4122.
|
static UUID |
randomUUID()
Generates a variant 2, version 4 (randomly generated number) UUID as per
RFC 4122.
|
long |
timestamp()
The timestamp value of the version 1, variant 2 UUID as per RFC 4122.
|
String |
toString()
Returns a string representation of this UUID in the following format, as
per RFC 4122.
|
int |
variant()
The variant of the UUID as per RFC 4122.
|
int |
version()
The version of the variant 2 UUID as per RFC 4122.
|
public UUID(long mostSigBits, long leastSigBits)
Constructs an instance with the specified bits.
mostSigBits
- The 64 most significant bits of the UUID.leastSigBits
- The 64 least significant bits of the UUID.public static UUID randomUUID()
Generates a variant 2, version 4 (randomly generated number) UUID as per RFC 4122.
public static UUID nameUUIDFromBytes(byte[] name)
Generates a variant 2, version 3 (name-based, MD5-hashed) UUID as per RFC 4122.
name
- the name used as byte array to create an UUID.public static UUID fromString(String uuid)
Parses a UUID string with the format defined by toString()
.
uuid
- the UUID string to parse.NullPointerException
- if uuid
is null
.IllegalArgumentException
- if uuid
is not formatted correctly.public long getLeastSignificantBits()
The 64 least significant bits of the UUID.
public long getMostSignificantBits()
The 64 most significant bits of the UUID.
public int version()
The version of the variant 2 UUID as per RFC 4122. If the variant is not 2, then the version will be 0.
nameUUIDFromBytes(byte[])
)randomUUID()
)int
value.public int variant()
The variant of the UUID as per RFC 4122.
int
value.public long timestamp()
The timestamp value of the version 1, variant 2 UUID as per RFC 4122.
long
value.UnsupportedOperationException
- if version()
is not 1.public int clockSequence()
The clock sequence value of the version 1, variant 2 UUID as per RFC 4122.
long
value.UnsupportedOperationException
- if version()
is not 1.public long node()
The node value of the version 1, variant 2 UUID as per RFC 4122.
long
value.UnsupportedOperationException
- if version()
is not 1.public int compareTo(UUID uuid)
Compares this UUID to the specified UUID. The natural ordering of UUIDs is based upon the value of the bits from most significant to least significant.
compareTo
in interface Comparable<UUID>
uuid
- the UUID to compare to.uuid
.public boolean equals(Object object)
Compares this UUID to another object for equality. If object
is not null
, is a UUID instance, and all bits are equal, then
true
is returned.
equals
in class Object
object
- the Object
to compare to.true
if this UUID is equal to object
or false
if not.Object.hashCode()
public int hashCode()
Returns a hash value for this UUID that is consistent with the
equals(Object)
method.
hashCode
in class Object
int
value.Object.equals(java.lang.Object)
public String toString()
Returns a string representation of this UUID in the following format, as per RFC 4122.
UUID = time-low "-" time-mid "-" time-high-and-version "-" clock-seq-and-reserved clock-seq-low "-" node time-low = 4hexOctet time-mid = 2hexOctet time-high-and-version = 2hexOctet clock-seq-and-reserved = hexOctet clock-seq-low = hexOctet node = 6hexOctet hexOctet = hexDigit hexDigit hexDigit = "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9" / "a" / "b" / "c" / "d" / "e" / "f" / "A" / "B" / "C" / "D" / "E" / "F"