使用Guava,是否可以将Map转换为包含Map的键和值的对象的Set或List?例如。给出类似
的东西class MyEntry {
public String key;
public String value;
}
Map<String,String> theMap = new Map<String,String>();
我在Guava中遗漏了这样的东西/没找到它:
Set<MyEntry> myEntries = Maps.transform(theMap, transformFunction<<Map<String,String>, MyEntry>);
显然手动这样做并不难,我仍然想知道我是否错过了什么,而番石榴真的不支持这样的事情?
感谢任何提示!
答案 0 :(得分:4)
与番石榴最接近的事情就像是
Collection<MyEntry> myEntries = Collections2.transform(map.entrySet(), function);
这只是entrySet
的{{1}}上的正常转换,map
的类型为function
。
Guava由于各种原因无法提供Function<Map.Entry<String, String>, MyEntry>
- 它不能保证函数是单射的,它不具有与函数相反的等等。如果你需要{{1那么你最好只做手动循环。