Sobes.tech
Junior — Middle

Peut-on utiliser une valeur non chaîne comme clé dans un objet?

sobes.tech IA

Réponse de l'IA

En Java (et, en particulier, dans Android), la clé dans les objets standard comme HashMap peut être un objet de n'importe quelle classe, pas nécessairement une chaîne. L'essentiel est que cet objet implémente correctement les méthodes equals() et hashCode(). Par exemple, vous pouvez utiliser Integer, Enum ou vos propres classes comme clés.

Exemple :

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

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

Cependant, si vous utilisez un objet normal sans redéfinir equals et hashCode, le comportement peut être inattendu, car les clés sont comparées selon ces méthodes. Contrairement à JavaScript, où les clés d'un objet sont toujours converties en chaîne, en Java, les clés dans un Map peuvent être n'importe quel objet.