hashmap

时间:2016-06-08 06:03:45

标签: java

我有一个有多个值的hashmap,它会覆盖相同的键,有什么解决方法吗?这是我的Hashmap

 HashMap<String, String> meMap=new HashMap<String, String>();
 meMap.put("Jack","John");
 meMap.put("Jack","Jacob");

它将覆盖第一个。

6 个答案:

答案 0 :(得分:1)

Map是一个Key - Value存储,意味着您可以通过指定其Key来访问Map中的值。所以你会这样做:

meMap.get("Color3");

答案 1 :(得分:1)

您必须将get()用于单个元素:

Toast.makeText(context, map.get("Color3"), Toast.LENGTH_SHORT).show();

答案 2 :(得分:1)

您可以使用get function:meMap.get("Color3");。您可以在此处访问Java中不同的地图方法:

https://docs.oracle.com/javase/8/docs/api/java/util/Map.html

答案 3 :(得分:0)

地图包含Keyvalue的组合。如果你想要一个值,你必须把它称为键。

System.out.println(meMap.get("Color3"));

资源链接:

Class HashMap

答案 4 :(得分:0)

在HashMap中,一个键不能有多个值。

如果您需要为同一个键存储多个值,那么您应该使用HashMap的地图。

答案 5 :(得分:0)

从您的评论中,您似乎想为单个密钥存储多个值。在这种情况下,您可以将值存储在List中,然后将该列表添加到地图中,如下所示:

HashMap<String, List<String>> meMap=new HashMap<String, List<String>>();
        List<String> lst=new ArrayList<String>();//List to store colors
        lst.add("Red");
        lst.add("Blue");
        lst.add("Green");
        lst.add("White");
        //add the key and list to map
        meMap.put("Color",lst);
        //to get the value at 3rd position,use get(2),as index starts from 0. 
        System.out.println(meMap.get("Color").get(2));