У меня есть HashMap
разные ключи и значения, как мне получить одно значение?
У меня есть ключ на карте с именем my_code
, он должен содержать строку, как я могу просто получить его, не перебирая карту?
Пока у меня есть ..
HashMap newMap = new HashMap(paramMap);
String s = newMap.get("my_code").toString();
Я ожидаю увидеть String
, например, "ABC" или "DEF", так как это то, что я вставил туда изначально, но если я сделаю это, System.out.println()
я получаю что-то вродеjava.lang.string#F0454
Извините, я не слишком знаком с картами, как вы, наверное, догадались;)
источник
Если вы храните ключи / значения в виде строк, это будет работать:
Вопрос в том, что заполняется в HashMap (ключ и значение)
источник
Если вы будете использовать Generics и определите свою карту как
затем получение значения как
вам не потребуется приводить тип map.get () или вызывать метод toString для получения значения String
источник
Боюсь, ваш вопрос не совсем ясен. У ключа нет «имени»; что касается карты, он ничего не "называет" - это просто ключ, который будет сравниваться с другими ключами. Если у вас много разных типов ключей, я настоятельно рекомендую вам поместить их на разные карты в целях здравомыслия.
Если это не помогает, проясните вопрос - желательно с помощью кода, чтобы показать, что вы имеете в виду.
источник
map.get(myCode)
источник
Здесь следует отметить важный момент: если ваш ключ является объектом определяемого пользователем класса в java, то сделайте его точкой для переопределения метода equals. Поскольку метод HashMap.get (Object key) использует метод equals для сопоставления значения ключа. Если вы не переопределите метод equals, он попытается найти значение просто на основе ссылки ключа, а не фактического значения ключа, и в этом случае он всегда будет возвращать значение null.
источник
Предположим, вы объявили HashMap как: -
Тогда ключ в карте имеет тип символьных данных и значение типа int. Теперь, чтобы получить значение, соответствующее ключу, независимо от типа ключа, типа значения, синтаксиса: -
Итак, согласно вашему вопросу вы хотите получить строковое значение, соответствующее ключу. Для этого просто объявите HashMap как HashMap <"тип данных ключа", "тип данных значения" hs = new HashMap <> (); Использование этого сделает ваш код более чистым, а также вам не нужно преобразовывать результат hs.get ("my_code") в строку, поскольку по умолчанию он возвращает значение строки, если во время ввода значение было сохранено в виде строки.
источник
Это еще один пример использования функций keySet (), get (), values () и entrySet () для получения ключей и значений на карте:
источник
Вы можете использовать метод get (Object key) из HashMap. Имейте в виду, что во многих случаях ваш ключевой класс должен переопределять метод equals, чтобы быть полезным классом для ключа карты.
источник
Значение, сопоставленное с ключом,
4
равноDD
источник