1

使用 Guava,是否可以将 Map 转换为包含 Map 的键和值的对象的集合或列表?例如给出类似的东西

class MyEntry {
    public String key;
    public String value;
}

Map<String,String> theMap = new Map<String,String>();

我在番石榴中缺少这样的东西/没有找到它:

Set<MyEntry> myEntries = Maps.transform(theMap, transformFunction<<Map<String,String>, MyEntry>);

显然手动执行此操作并不难,但我仍然想知道我是否错过了一些东西,而 Guava 真的不支持这样的事情吗?

感谢您的任何提示!

4

1 回答 1

4

你可以用番石榴做的最接近的事情是

Collection<MyEntry> myEntries = Collections2.transform(map.entrySet(), function);

这只是 的 上的正常转换entrySetmap并且function具有类型Function<Map.Entry<String, String>, MyEntry>

Guava 不能提供Sets.transform多种原因——它不能保证函数是单射的,它没有函数的逆函数等等。如果你需要 a Set,那么你最好只做手动循环。

于 2013-04-01T16:05:29.967 回答