我有像这样的番石榴HashMultimap
Multimap<String, String> multiMap = HashMultimap.create();
multiMap.put("a", "x");
multiMap.put("a", "y");
multiMap.put("b", "y");
multiMap.put("b", "z");
multiMap.put("d", "x");
multiMap.put("c", "h");
我想创建一个包含不同键和值的表。调用
multiMap.values(); // returns x,y,y,z,x,h
但我想要一套独特的价值观?
我知道Iterator.filter()可用,但我不确定它应该如何实现。预期结果应为
// x,y,z,h
答案 0 :(得分:9)
我只是用
Sets.newHashSet(multiMap.values());
或者,如果你想要一个不可变的版本:
ImmutableSet.copyOf(multiMap.values());
请注意,在任何一种情况下,您都不再拥有值的实时视图,而是副本。