我有一个 Map,它的键和集合(包含整数)的值是字符串
假设我的钥匙看起来像“苹果”、“香蕉”、“橙子”等。
用户输入文本,我将其保存为字符串变量。如何在我的地图中搜索相同的键?因此,如果用户键入“apple”,我如何将该字符串提供给方法并让该方法在我的地图中搜索“apple”键并返回与其关联的整数集(值)?
谢谢
使用get方法
Set<Integer> values = map.get("apple");
您并没有真正搜索地图,而是从中检索值:
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");
}
返回与其关联的整数集(值)?
地图需要不同的键,因此我假设您的地图声明看起来像Map<String, List<Integer>> myMap
检查映射中是否存在键:
myMap.containsKey(key)
例如
myMap.containsKey("apple")
获取与键关联的值:
myMap.get(key)
例如
myMap.get("apple")
这是一个实现您需要的代码示例:
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;
}