【问题标题】:guava distinct multimap values番石榴不同的多图值
【发布时间】:2012-03-24 03:02:59
【问题描述】:

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

【问题讨论】:

    标签: java guava


    【解决方案1】:

    我只是用

    Sets.newHashSet(multiMap.values());
    

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

    ImmutableSet.copyOf(multiMap.values());
    

    请注意,无论哪种情况,您都不再有值的实时视图,而是一个副本。

    【讨论】:

    • 所有正确但旨在获取多图值的方法称为values(),而不是getValues()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-13
    • 1970-01-01
    • 2013-01-16
    • 1970-01-01
    • 2012-06-04
    • 1970-01-01
    相关资源
    最近更新 更多