我需要创建逆映射 - 选择唯一值并为它们找到键。似乎唯一的方法是迭代所有键/值对,因为 entrySet 返回一组
原文由 user710818 发布,翻译遵循 CC BY-SA 4.0 许可协议
我需要创建逆映射 - 选择唯一值并为它们找到键。似乎唯一的方法是迭代所有键/值对,因为 entrySet 返回一组
原文由 user710818 发布,翻译遵循 CC BY-SA 4.0 许可协议
看看 Google Guava BiMap 。
用法示例
Map<Integer, String> map = new HashMap<>();
map.put(1, "one");
map.put(2, "two");
Map<String, Integer> inverted = HashBiMap.create(map).inverse();
原文由 Rhangaun 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.1k 阅读
8 回答6.3k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
1 回答2.1k 阅读✓ 已解决
地图中的值可能不是唯一的。但是如果它们是(在你的情况下)你可以按照你在问题中写的那样做并创建一个通用方法来转换它:
Java 8:
使用示例:
旁注:
put(.., ..)
方法将返回键的“旧”值。如果它不为空,您可能会抛出new IllegalArgumentException("Map values must be unique")
或类似的东西。