我在java中使用hashmap datastructure.我有一些数据,其中每个条目(值)都有一个组(键).现在我将这些数据存储在hashmap中,如下所示
HashMap<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "value1");
map.put(1, "value2");
map.put(2, "value3");
map.put(2, "value4");
map.put(3, "value5");
map.put(3, "value6");
map.put(3, "value7");
Run Code Online (Sandbox Code Playgroud)
现在我想搜索条目中是否存在条目(键= 3和值="value6")或不存在.有没有具体的方法可以打电话?或者是否有其他方法可以做到这一点?
您不能在地图中针对相同的密钥保留多个条目.如果您的地图以前包含该键的映射,则替换旧值.你需要
Map<Integer,List<String>> map = new HashMap<>();
^^^^^
(Diamond operator)
Run Code Online (Sandbox Code Playgroud)
在哪里可以保存相同键的字符串列表.你可以得到价值map#get
List<String> str = map.get(3);
Run Code Online (Sandbox Code Playgroud)
您可以使用Guava Multimap(API 文档)
它针对一个键存储多个值。对于你的情况,
Multimap<Integer,String> myMultimap = ArrayListMultimap.create();
myMultimap .put(1, "value1");
myMultimap .put(1, "value2");
myMultimap .put(2, "value3");
myMultimap .put(2, "value4");
myMultimap .put(3, "value5");
myMultimap .put(3, "value6");
myMultimap .put(3, "value7");
Run Code Online (Sandbox Code Playgroud)
这将为您创建数据结构
现在我想搜索条目(key=3 和 value="value6")是否存在于地图中。有什么具体的调用方法吗?或者有没有其他方法可以做到?
对于搜索使用multimap#containsEntry(key,value),它boolean根据结果返回结果
所以,
myMultimap.containsEntry(3,"value6")
Run Code Online (Sandbox Code Playgroud)
这将返回 true
| 归档时间: |
|
| 查看次数: |
12910 次 |
| 最近记录: |