我正在检索具有相同值的所有映射键。此代码给出正确的输出“ [A,B]”。但是我想要答案为A B.如何更改代码以将输出作为A B?
class MyHashMap<K, V> extends HashMap<K, V> {
Map<V, Set<K>> reverseMap = new HashMap<>();
public V put(K key, V value) {
if (reverseMap.get(value) == null)
reverseMap.put(value, new HashSet<K>());
reverseMap.get(value).add(key);
return super.put(key, value);
}
public Set<K> getKeys(V value) {
return reverseMap.get(value);
}
}
class Main
{
public static void main(String[] args) {
MyHashMap<String, Integer> hashMap = new MyHashMap();
hashMap.put("A", 1);
hashMap.put("B", 1);
hashMap.put("C", 2);
System.out.println("Gift is for "+hashMap.getKeys(1));
}
}
最佳答案
getKeys
返回Set<K>
,这意味着在字符串操作中遇到类似Set#toString
的表达式时将使用hashMap.getKeys(1)
。 Set#toString
添加这些刹车。
您可能需要查看String.join
。
System.out.println("Gift is for " + String.join(" ", hashMap.getKeys(1)));
关于java - 检索具有相同值的所有 map 键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56505408/