Map 番石榴-过滤和变换映射
过滤和转换Map 番石榴-过滤和变换映射,map,filtering,guava,transformation,Map,Filtering,Guava,Transformation,过滤和转换映射值的最有效方法是什么。我习惯于使用fluentiable进行此类操作,但它不适用于Map Maps.transformValues(Maps.filterValues(map,predicate),function)是最佳选择吗?基本解决方案是,如果您知道使用map的唯一方法是只迭代条目一次,那么您就可以使用它了。但是,如果您计划使用get,put,或者您可能会多次迭代它,则建议创建一个新的映射,以便只执行一次过滤和转换工作 Maps.newHashMap(Maps.transfo
映射值的最有效方法是什么。我习惯于使用fluentiable
进行此类操作,但它不适用于Map
Maps.transformValues(Maps.filterValues(map,predicate),function)
是最佳选择吗?基本解决方案是,如果您知道使用map
的唯一方法是只迭代条目一次,那么您就可以使用它了。但是,如果您计划使用get
,put
,或者您可能会多次迭代它,则建议创建一个新的映射
,以便只执行一次过滤和转换工作
Maps.newHashMap(Maps.transformValues(Maps.filterValues(map, predicate), function));
filter
和transform
的顺序在这里是正确的,因此您不会transform
本应过滤的值。快速查看显示transformValues
和filterValues
返回装饰符。因此,get
、put
等的复杂性。。。取决于过滤器
和转换
功能的复杂性。完整副本可能更有效。您的意思是我应该在末尾创建一个新映射,还是在filterValues
之后创建一个新映射?这取决于您如何使用映射。decoratorMap
s的主内存开销是decorator函数。但是,当您访问decorator映射时,通常会遇到这两个函数的复杂性。