Junior — Middle
Може ли като ключ в обект да се използва нестрингова стойност?
sobes.tech AI
Отговор от AI
В Java (и, по-специално, в Android) ключът в стандартните обекти като HashMap може да бъде обект от всяка класа, не непременно низ. Важното е този обект правилно да реализира методите equals() и hashCode(). Например, може да използвате Integer, Enum или собствени класове като ключове.
Пример:
Map<Integer, String> map = new HashMap<>();
map.put(1, "един");
map.put(2, "два");
String value = map.get(1); // "един"
Обаче, ако използвате обикновен обект без да препишете equals и hashCode, поведението може да бъде неочаквано, тъй като ключовете се сравняват по тези методи. За разлика от JavaScript, където ключовете на обекта винаги се преобразуват в низ, в Java ключовете в Map могат да бъдат всякакви обекти.