Junior — Middle
È possibile usare un valore non stringa come chiave in un oggetto?
sobes.tech AI
Risposta dell'AI
In Java (e, in particolare, in Android), la chiave in oggetti standard come HashMap può essere un oggetto di qualsiasi classe, non necessariamente una stringa. L'importante è che questo oggetto implementi correttamente i metodi equals() e hashCode(). Ad esempio, si possono usare Integer, Enum o classi proprie come chiavi.
Esempio:
Map<Integer, String> map = new HashMap<>();
map.put(1, "uno");
map.put(2, "due");
String value = map.get(1); // "uno"
Tuttavia, se si utilizza un oggetto normale senza sovrascrivere equals e hashCode, il comportamento potrebbe essere inaspettato, poiché le chiavi vengono confrontate tramite questi metodi. A differenza di JavaScript, dove le chiavi dell'oggetto vengono sempre convertite in stringa, in Java le chiavi in una Map possono essere qualsiasi oggetto.