Java 将字符串与哈希映射一起使用
如何使用Java 将字符串与哈希映射一起使用,java,Java,如何使用字符串指定特定的哈希映射 例如: 公共静态ConcurrentHashMap年龄=新ConcurrentHashMap(); 字符串s=“年龄”; s、 得到(“尼克”); 如果你想把一个人的名字和他们的年龄对应起来,你需要 Map<String,Integer> age = new HashMap<>(); // only use ConcurrentHashMap if you intend
字符串
指定特定的哈希映射
例如:
公共静态ConcurrentHashMap年龄=新ConcurrentHashMap();
字符串s=“年龄”;
s、 得到(“尼克”);
如果你想把一个人的名字和他们的年龄对应起来,你需要
Map<String,Integer> age = new HashMap<>(); // only use ConcurrentHashMap if you intend
// to use that Map from multiple threads
...
age.put("Nick",42);
...
int nicksAge = age.get("Nick");
Map age=newhashmap();//仅在需要时使用ConcurrentHashMap
//从多个线程使用该映射
...
年龄,put("尼克,42岁);;
...
int nicksAge=age.get(“尼克”);
公共类HashMapTest{
public static HashMap ageMap=new HashMap();
公共静态void main(字符串[]args){
“尼克”,12岁;
整数年龄=ageMap.get(“尼克”);
系统输出打印项次(年龄);
}
}
您可以使用泛型实现这一点
泛型允许您为映射指定类型。因此,与其使用
public static ConcurrentHashMap age = new ConcurrentHashMap();
你可以用
public static Map<String, Short> age = new ConcurrentHashMap<>();
你可以简单地写
Integer age = ageMap.get("Nick");
“使用字符串指定特定的哈希映射。”这是不连贯的。你到底想做什么?在你的例子中,s是字符串。我猜你指的是age.get(“尼克”)而不是s.get(“尼克”)好吧,但我要找的是临时使用字符串来引用地图的名称。如果您在我的示例中看到,我使用的字符串“s”被指定为“age”,用作hashmap的名称,即age。(如果有道理的话)@NickMandylas你所尝试的是不可能的
s
是一个字符串
,而不是哈希映射
。它没有get方法。
public static Map<String, Short> age = new ConcurrentHashMap<>();
public static Map<String, Integer> ageMap = new HashMap<>();
Object o = ageMap.get("Nick");
if(o instanceof Integer) {
Integer age = (Integer) o;
}
Integer age = ageMap.get("Nick");