根据键名从哈希映射获取字符串值

2022-08-31 08:29:43

我有一个具有各种键和值的,我怎样才能得到一个值?HashMap

我在地图中有一个名为的键,它应该包含一个字符串,我怎么能在不迭代地图的情况下得到它呢?my_code

到目前为止,我已经得到了..

   HashMap newMap = new HashMap(paramMap);
   String s = newMap.get("my_code").toString();

我期待看到一个,例如“ABC”或“DEF”,因为这是我最初放在那里的东西,但是如果我这样做,我会得到类似的东西StringSystem.out.println()java.lang.string#F0454

抱歉,我不太熟悉地图,因为你可能会猜到;)


答案 1

只需使用 Map#get(key)

Object value = map.get(myCode);

这是一个关于地图的教程,你可能会发现它很有用:https://docs.oracle.com/javase/tutorial/collections/interfaces/map.html

编辑:您使用以下内容编辑了问题:

我期待看到一个字符串,例如“ABC”或“DEF”,因为这是我最初放在那里的东西,但是如果我做一个System.out.println(),我得到类似java.lang.string#F0454的东西

抱歉,我不太熟悉地图,因为你可能会猜到;)

你看到的是 Object#toString() 的结果。但是 应该已经实现了一个,除非您创建了一个名称中带有小写的自定义实现:。如果它实际上是一个自定义对象,那么每当您在所需的对象上执行或时,都需要重写以获取“人类可读字符串”。例如:java.lang.Stringsjava.lang.stringObject#toString()System.out.println()toString()

@Override
public String toString() {
    return "This is Object X with a property value " + value;
}

答案 2

如果您将键/值存储为字符串,那么这将起作用:

HashMap<String, String> newMap = new HashMap<String, String>();
newMap.put("my_code", "shhh_secret");
String value = newMap.get("my_code");

问题是在HashMap中填充了什么(键和值)