Universally Unique Identifier (UUID) bzw. Globally Unique IDentifier (GUID) mit Java erzeugen

Ein Universally Unique Identifier (UUID) ist ein Standard für Identifikatoren. Wer eindeutige einmalige IDs braucht, kann die in Java einfach erzeugen. Es gibt da ab 1.5 die Klasse UUID mit der man einfach diese IDs erzeugen kann.

Die RFC 4122 beschreibt den Aufbau und den Algorithmus für die Erzeugung. Das ganze ist schon ziemlich sicher, da die SecureRandom Klasse in Java verwendet wird.

Universally Unique Identifier (UUID) bzw.  Globally Unique IDentifier (GUID) mit Java erzeugen

Habe mich gefragt, ob die auch wirklich eindeutig sind. Dafür mal eben einen kleinen JUnit Test geschrieben der 1 Millionen UUIDs erzeugt und testet ob zwei gleiche erzeugt werden. Nach 4889,556 Sekunden das Ergebnis:

Universally Unique Identifier (UUID) bzw.  Globally Unique IDentifier (GUID) mit Java erzeugen

Hier die Testklasse:

package de.wenzlaff.tools;

import static org.junit.Assert.fail;

import java.util.ArrayList;
import java.util.List;
import java.util.UUID;

import org.junit.Test;

public class TestUuid {

	private static final int MAX = 1000000;

	@Test
	public void testIdGen() {

		List<String> c = new ArrayList<>();

		for (int i = 0; i < MAX; i++) {
			String id = UUID.randomUUID().toString();
			if (c.contains(id)) {
				fail("Doppelte ID " + id + " generiert!");
			}
			c.add(id);
			System.out.println(id);
		}
	}
}

Die CPU war schon teilweise zu 100% ausgelastet, zumindestens einer der acht Kerne:

Universally Unique Identifier (UUID) bzw.  Globally Unique IDentifier (GUID) mit Java erzeugen

Ein UUID in ihrer Normalform sieht beispielsweise so aus:

4ca875fe-6643-43fb-8cf4-ac05f1d06d67
2ea4d266-68e7-49ed-b927-c25e6a3a6909
eb24cbf6-daac-4ba3-8f08-fea35d04121b
e59fd813-61c1-460a-a428-c679241db823
47f39849-9096-4e48-9aa7-4b251c995155
f89489d1-d0ba-4935-8447-dee46dffcaaf
7686a777-95cf-40ff-8255-88f503eb86b4
8c5b08ed-e450-4e28-a98c-a1d369a06afe
4a464282-6034-4b3b-990f-7527cedb8133
c2e58ff2-6d55-4e64-8bc4-5a57f6c5f1ad
79577947-93b6-4c45-8b42-38b1632aa4b9
50d35068-7cb2-4902-a5a5-427fa361a879
7f48e781-928f-4213-bd55-d00d54cd57c9
0be5cbb0-fcb1-4ad8-a1e6-66ff36563325
6fbc9e62-119e-42c1-a855-793a2d2fafc0
1792a513-e9de-4894-b6f2-c0992e14ef94
feb931bb-5b7f-4e3a-b1ff-1f295b127a83
a84cfe70-f118-4ec8-b067-2ff1ccecce7e
9c5e8efc-04e1-4dde-b44a-109f678aecf8
953ae098-923b-4fbc-8bcc-76cfc418b171
7eb6470d-b199-4454-9344-493e16587bf1
b82ed01a-1f33-4495-8c5b-d4c41b7c2c25
9dceb9ca-a955-4416-97fa-f9b8b406c667
548b64a0-fd2b-4559-87f8-cefe5b559c83
ba40af96-0172-401f-a3cf-4245846003f7
cfe78533-6a1a-4fcb-b4b0-fb6216361334
773fed57-0831-4d29-890e-52fb37f66af3
0c022ad1-a649-40e0-9ef3-3d9b7d9fecf2
9d0d8179-be5f-448f-a3a7-722d71927122
be89d391-11dd-49c9-b1c1-c9eb8315e30a
ce6e32f1-3d23-4a41-9260-beae98af470f
e25bbfc3-c8f0-4883-93af-626f22e2f7bd
d6155be7-8dcd-4c09-b451-2b546b01c42d
5689a990-2d67-428c-bc1c-10781bfa286c
7d858ccc-1936-4dd4-89a5-9b46e63afa40

Wie lange läuft bei Euch der Test? Wie lange läuft er auf einem Raspberry Pi?

Ähnliche Artikel:

  1. In welcher Höhe fliegen Flugzeuge?
  2. Welche Möglichkeiten der Java Objekt-Erzeugung gibt es?
  3. Java Rätsel des Monats

wallpaper-1019588
Mit Kindern über gleichgeschlechtliche Liebe reden
wallpaper-1019588
[Comic] Seven Sons
wallpaper-1019588
Momentary Lily: Original-Anime angekündigt
wallpaper-1019588
LUCK LIFE: Band feiert Europapremiere auf der Connichi