HashMap键和值

时间:2013-03-11 10:42:30

标签: java map hashmap

我有一个哈希映射和值。现在我想将地图中的值设置为键和键作为值。谁能提出任何想法?

我的地图

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");

有人有想法吗?感谢

3 个答案:

答案 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。最后删除旧的。