我有一个哈希映射和值。现在我想将地图中的值设置为键和键作为值。谁能提出任何想法?
我的地图
Map<String, String> col=new HashMap<String, String>();
col.put("one","four");
col.put("two","five");
col.put("three","Six");
现在我想创建另一张地图,并按照我上面所说的其他方式将其放入。即,
Map<String, String> col2=new HashMap<String, String>();
col.put("five","one");
col.put("four","two");
col.put("Six","three");
有人有想法吗?感谢
答案 0 :(得分:2)
像这样:
Map<String, String> col2 = new HashMap<String, String>();
for (Map.Entry<String, String> e : col.entrySet()) {
col2.put(e.getValue(), e.getKey());
}
答案 1 :(得分:1)
假设您的值在您的hashmap中是唯一的,您可以这样做。
// Get the value collection from the old HashMap
Collection<String> valueCollection = col.values();
Iterator<String> valueIterator = valueCollection.iterator();
HashMap<String, String> col1 = new HashMap<String, String>();
while(valueIterator.hasNext()){
String currentValue = valueIterator.next();
// Find the value in old HashMap
Iterator<String> keyIterator = col.keySet().iterator();
while(keyIterator.hasNext()){
String currentKey = keyIterator.next();
if (col.get(currentKey).equals(currentValue)){
// When found, put the value and key combination in new HashMap
col1.put(currentValue, currentKey);
break;
}
}
}
答案 2 :(得分:0)
创建另一个Map
并逐个遍历键/值并放入新的Map
。最后删除旧的。