Junior — Middle
Poate fi utilizată o valoare care nu este șir ca și cheie într-un obiect?
sobes.tech AI
Răspuns de la AI
În Java (și, în special, în Android), cheia în obiectele standard precum HashMap poate fi un obiect din orice clasă, nu neapărat un șir de caractere. Important este ca acest obiect să implementeze corect metodele equals() și hashCode(). De exemplu, se pot folosi Integer, Enum sau propriile clase ca chei.
Exemplu:
Map<Integer, String> map = new HashMap<>();
map.put(1, "unu");
map.put(2, "doi");
String value = map.get(1); // "unu"
Totuși, dacă se folosește un obiect obișnuit fără a suprascrie equals și hashCode, comportamentul poate fi neașteptat, deoarece cheile sunt comparate după aceste metode. Spre deosebire de JavaScript, unde cheile obiectului sunt întotdeauna convertite în șir, în Java cheile dintr-un Map pot fi orice obiect.