【发布时间】:2014-09-24 18:03:58
【问题描述】:
过滤和转换Map 的值的最有效方法是什么。我习惯使用FluentIterable 进行此类操作,但不适用于Map。
Maps.transformValues(Maps.filterValues(map, predicate), function) 是最佳选择吗?
【问题讨论】:
-
快速查看javadocs 会发现
transformValues和filterValues返回装饰器。因此,get、put等的复杂性取决于filter和transform函数的复杂性。完整的副本可能更有效。 -
你的意思是我应该在最后制作一张新地图,还是在
filterValues之后? -
这取决于您如何使用
Map<K, V>。装饰器Map<K, V>s 的主内存开销是装饰器函数。不过,当您访问装饰器Map<K, V>(s) 时,通常会遇到这两个函数的复杂性。
标签: map filtering guava transformation