这是一个简单的问题,我有一个简单的 HashMap,我想反转它的键和值。
HashMap<Character, String> myHashMap = new HashMap<Character, String>();
myHashMap.put('a', "test one");
myHashMap.put('b', "test two");
我想创建一个新的 HashMap,在其中放置相反的内容。
HashMap<String, Character> reversedHashMap = new HashMap<String, Character>();
e.g. Keys "test one" & "test two" and values 'a' & 'b'.
原文由 Ken 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您确定您的值是唯一的,您可以遍历旧地图的条目。
或者,您可以使用像 Guava 提供的双向地图并使用
inverse()
方法:随着 java-8 的推出,您也可以这样做:
最后,我添加了我对 proton pack 库 的贡献,其中包含 Stream API 的实用方法。有了它,你可以这样做: