Junior — Middle
Môže sa ako kľúč v objekte použiť ne-riadková hodnota?
sobes.tech AI
Odpoveď od AI
V Jave (a, špeciálne v Android) môže byť kľúčom v štandardných objektoch typu HashMap akýkoľvek objekt akejkoľvek triedy, nie nevyhnutne reťazec. Dôležité je, aby tento objekt správne implementoval metódy equals() a hashCode(). Napríklad, môžu sa použiť Integer, Enum alebo vlastné triedy ako kľúče.
Príklad:
Map<Integer, String> map = new HashMap<>();
map.put(1, "jeden");
map.put(2, "dva");
String hodnota = map.get(1); // "jeden"
Avšak, ak použijete obyčajný objekt bez prepísania equals a hashCode, správanie môže byť nepredvídateľné, pretože kľúče sa porovnávajú podľa týchto metód. Na rozdiel od JavaScriptu, kde sú kľúče objektu vždy prevedené na reťazec, v Jave môžu byť kľúče v Map akékoľvek objekty.