番石榴不同的多图值

时间:2012-03-06 15:46:47

标签: java guava

我有像这样的番石榴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

1 个答案:

答案 0 :(得分:9)

我只是用

Sets.newHashSet(multiMap.values());

或者,如果你想要一个不可变的版本:

ImmutableSet.copyOf(multiMap.values());

请注意,在任何一种情况下,您都不再拥有值的实时视图,而是副本。