Junior — Middle
Lze jako klíč v objektu použít hodnotu, která není řetězec?
sobes.tech AI
Odpověď od AI
V Javě (a, zejména v Androidu) může být klíčem v standardních objektech typu HashMap jakýkoli objekt jakéhokoli třídy, nikoli nutně řetězec. Důležité je, aby tento objekt správně implementoval metody equals() a hashCode(). Například lze použít Integer, Enum nebo vlastní třídy jako klíče.
Příklad:
Map<Integer, String> map = new HashMap<>();
map.put(1, "jedna");
map.put(2, "dva");
String hodnota = map.get(1); // "jedna"
Nicméně, pokud použijete obyčejný objekt bez přepsání equals a hashCode, může být chování nepředvídatelné, protože klíče jsou porovnávány podle těchto metod. Na rozdíl od JavaScriptu, kde jsou klíče objektu vždy převedeny na řetězec, v Javě mohou být klíče v Map jakýkoli objekt.