代码:
Multimap<String, String> myMultimap = ArrayListMultimap.create();
myMultimap.put("12345", "qwer");
myMultimap.put("12345", "abcd");
myMultimap.put("12345", "qwer");
System.out.println(myMultimap);
结果:
{12345=[qwer, abcd, qwer]}
是否可以消除重复的“qwer”? 感谢。
答案 0 :(得分:37)
使用其中一个SetMultimap
实施,例如HashMultimap
:
SetMultimap<String, String> myMultimap = HashMultimap.create();
myMultimap.put("12345", "qwer");
myMultimap.put("12345", "abcd");
myMultimap.put("12345", "qwer");
System.out.println(myMultimap); // {12345=[abcd, qwer]}
答案 1 :(得分:12)
ListMultimap
等ArrayListMultimap
允许重复的键值对。尝试SetMultimap
的实施,例如HashMultimap
或TreeMultimap
。
答案 2 :(得分:0)
有很多方法可以做到这一点。最简单的方法是使用SetMultimap
。
使用给定示例的仅JDK解决方案只是使用Map<String, Set<String>>
,它将拥有Set
个唯一值的唯一键。
Map<String, Set<String>> map = new HashMap<String, Set<String>>();
使用它的好处是你不必从外部库引入数据结构,你严格使用java核心库。