java - 使用现有的 HashMap 创建 HashMap

标签 java hashmap

我创建了一个 HashMap ,如下所示:

Map<String, String> streetno = new HashMap<String, String>();

streetno.put("3", "Sachin");
streetno.put("2", "Dravid");
streetno.put("1", "Sehwag");
streetno.put("5", "Laxman");
streetno.put("4", "Kohli");

现在我想创建一个新的 HashMap ,其中上述 HashMap 的键成为值,值成为键,如下所示:

Map<String, String> streetname = new HashMap<String, String>();

streetname.put("Sachin", "3");
streetname.put("Dravid", "2");
streetname.put("Sehwag", "1");
streetname.put("Laxman", "5");
streetname.put("Kohli", "4");

我不知道该怎么做..任何人都可以帮我解决这个问题..

最佳答案

Map<String, String> streetname = new HashMap<String, String>();

for (Entry<String,String> e : streetno.entrySet()) {
  streetname.put(e.getValue(), e.getKey());
}

这里,for 循环迭代原始映射中的所有条目(即键/值对),并将它们插入到交换键和值的第二个映射中。

检查 put() 是否返回 null 可能是个好主意。如果您获得非空值,则意味着 streetno 中的值不唯一。由于这是家庭作业,我让您自己弄清楚后果以及如何最好地处理它。

关于java - 使用现有的 HashMap 创建 HashMap ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9453880/

相关文章:

java - 为什么这个 Memoized Fibonacci 的实现不起作用?

java - 使用Java获取Hashmap中匹配的键和值

java - 如何让 onStart() 方法等到 onCreate() 方法完成

java - 更改 CXF 中生成的类的包

java - 需要一个适用于 Windows XP Home 的轻量级 Web 服务器

java - 从 HashMap 获取值的问题

java - 有没有更好的方法可以对Java集合对象实现有值(value)的压缩?

Java 类实例保存在实例体内

java - 使用 Java 的 HashMap 的键和值等于另外两个 HashMap 的值

java - 从 hashmap 中检索值并返回