使用带有哈希映射的字符串

时间:2015-11-07 03:49:34

标签: java

如何使用String指定特定的HashMap

例如:

public static ConcurrentHashMap<String, Integer> age = new ConcurrentHashMap<String, Integer>(); 
String s = "age";
s.get("Nick");

3 个答案:

答案 0 :(得分:0)

如果您想将某人的姓名映射到他们的年龄,您需要

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");

答案 1 :(得分:0)

public class HashMapTest {
    public static HashMap<String, Integer> ageMap = new HashMap<String, Integer>();

    public static void main(String[] args) {
        ageMap.put("Nick", 12);
        Integer age = ageMap.get("Nick");
        System.out.println(age);

    }

}

答案 2 :(得分:0)

您可以使用Generics实现此目的

https://docs.oracle.com/javase/tutorial/java/generics/

Generics允许您指定地图的类型。所以不要使用

public static ConcurrentHashMap age = new ConcurrentHashMap();

您可以使用

public static Map<String, Short> age = new ConcurrentHashMap<>();

或任何其他形式的地图,例如

public static Map<String, Integer> ageMap = new HashMap<>();

这简化了get和put操作。

而不是编写诸如

之类的代码
Object o = ageMap.get("Nick");
if(o instanceof Integer) {
    Integer age = (Integer) o;
}

你可以简单地写

Integer age = ageMap.get("Nick");