import java.util.UUID;
public class UUIDExample {
public static void main(String[] args) {
UUID randomUUID = UUID.randomUUID();
System.out.println("Random UUID: " + randomUUID);
String name = "example";
UUID nameUUID = UUID.nameUUIDFromBytes(name.getBytes());
System.out.println("Name-based UUID: " + nameUUID);
String uuidString = "db7a7d58-338c-4fd4-893f-7196eae11aef";
UUID.fromString(uuidString);
System.out.println("Version: " + randomUUID.version());
System.out.println("Variant: " + randomUUID.variant());
System.out.println("Timestamp: " + randomUUID.timestamp());
System.out.println("Clock sequence: " + randomUUID.clockSequence());
System.out.println("Node: " + randomUUID.node());
}
}
import java.util.UUID;
public class NameUUIDExample {
public static void main(String[] args) {
String namespace = "6ba7b810-9dad-11d1-80b4-00c04fd430c8";
String name = "example";
UUID namespaceUUID = UUID.fromString(namespace);
UUID nameUUID = UUID.nameUUIDFromBytes(concatenateBytes(namespaceUUID, name.getBytes()));
System.out.println("Name-based UUID: " + nameUUID);
}
private static byte[] concatenateBytes(UUID namespaceUUID, byte[] nameBytes) {
byte[] namespaceBytes = new byte[16];
long mostSignificant = namespaceUUID.getMostSignificantBits();
long leastSignificant = namespaceUUID.getLeastSignificantBits();
for (int i = 0; i < 8; i++) {
namespaceBytes[i] = (byte) (mostSignificant >>> 8 * (7 - i));
namespaceBytes[i + 8] = (byte) (leastSignificant >>> 8 * (7 - i));
}
byte[] resultBytes = new byte[namespaceBytes.length + nameBytes.length];
System.arraycopy(namespaceBytes, 0, resultBytes, 0, namespaceBytes.length);
System.arraycopy(nameBytes, 0, resultBytes, namespaceBytes.length, nameBytes.length);
return resultBytes;
}
}