Sobes.tech
Junior — Middle

Kann ein Nicht-String-Wert als Schlüssel in einem Objekt verwendet werden?

sobes.tech KI

Antwort von AI

In Java (und insbesondere in Android) kann der Schlüssel in Standardobjekten wie HashMap ein Objekt jeder Klasse sein, nicht unbedingt eine Zeichenkette. Wichtig ist, dass dieses Objekt die Methoden equals() und hashCode() korrekt implementiert. Zum Beispiel können Integer, Enum oder eigene Klassen als Schlüssel verwendet werden.

Beispiel:

Map<Integer, String> map = new HashMap<>();
map.put(1, "eins");
map.put(2, "zwei");

String value = map.get(1); // "eins"

Wenn jedoch ein normales Objekt ohne Überschreibung von equals und hashCode verwendet wird, kann das Verhalten unerwartet sein, da die Schlüssel anhand dieser Methoden verglichen werden. Im Gegensatz zu JavaScript, wo die Schlüssel eines Objekts immer in eine Zeichenkette umgewandelt werden, können in Java die Schlüssel in einer Map beliebige Objekte sein.