作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想编写一个方法,它将映射作为参数,并用值和键替换该映射的键和值。我正在尝试这样做:
public class HashMapKeyValueInterchange{
public static Map<String, String> getMyMap(ConcurrentHashMap<String, String> m){
Map<String, String> map2 = new HashMap<String, String>();
for(Entry<String, String> e:m.entrySet()){
map2.put(e.getValue(), e.getKey());
}
return map2;
}
public static void main(String[] args) {
ConcurrentHashMap<String, String> map1 = new ConcurrentHashMap<String, String>();
map1.put("ajay", "btech");
map1.put("manas", "mca");
map1.put("ashu", "mba");
}
}
使用此方法我可以获得一个带有交换的键和值的新 map (map2),但我希望交换map1
最佳答案
已经可用,无需重新发明轮子,如果你使用google集合库Guava那么你可以使用 BiMap<K,V>
.
It is a map that preserves the uniqueness of its values as well as that of its keys. This constraint enables bimaps to support an "inverse view", which is another bimap containing the same entries as this bimap but with reversed keys and values.
实现BiMap
是EnumBiMap, EnumHashBiMap, [HashBiMap][2], ImmutableBiMap
关于java - 如何用 Map 的值键替换键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18372109/
我是一名优秀的程序员,十分优秀!