2

我有一个 Map,它的键和集合(包含整数)的值是字符串

假设我的钥匙看起来像“苹果”、“香蕉”、“橙子”等。

用户输入文本,我将其保存为字符串变量。如何在我的地图中搜索相同的键?因此,如果用户键入“apple”,我如何将该字符串提供给方法并让该方法在我的地图中搜索“apple”键并返回与其关联的整数集(值)?

谢谢

4

4 回答 4

6

使用get方法

 Set<Integer> values = map.get("apple");
于 2013-04-04T00:33:25.830 回答
3

您并没有真正搜索地图,而是从中检索值:

public static void main(String[] args) {
    final Map<String, Set<Integer>> myMap = new HashMap<>();
    //put new values into map
    myMap.put("MyString", new HashSet<Integer>());
    //get Set from Map
    final Set<Integer> mySet = myMap.get("myString");
}
于 2013-04-04T00:36:22.707 回答
1

返回与其关联的整数集(值)?

地图需要不同的键,因此我假设您的地图声明看起来像Map<String, List<Integer>> myMap

检查映射中是否存在键: myMap.containsKey(key) 例如 myMap.containsKey("apple")

获取与键关联的值: myMap.get(key) 例如 myMap.get("apple")

于 2013-04-04T00:36:55.567 回答
0

这是一个实现您需要的代码示例:

public <K, V> Set<K> getKeys(Map<K, V> map, V value) {
    Set<K> keys = new HashSet<>();
    for (Entry<K, V> entry : map.entrySet()) {
        if (entry.getValue().equals(value)) {
            keys.add(entry.getKey());
        }
    }
    return keys;
}
于 2020-12-25T15:57:43.700 回答