Sobes.tech
Назад к вопросам
Junior — Middle
70

Может ли в качестве ключа в объекте использоваться не строковое значение?

Ответ от нейросети

sobes.tech 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 могут быть любыми объектами.