番石榴 - 过滤和转换地图

时间:2014-09-24 18:03:59

标签: map filtering guava transformation

过滤和转换Map值的最有效方法是什么?我习惯使用FluentIterable进行这类操作,但它不适用于Map

Maps.transformValues(Maps.filterValues(map, predicate), function)是最佳选择吗?

1 个答案:

答案 0 :(得分:1)

基本的解决方案是,如果您知道使用Map的唯一方法是完全迭代条目ONCE,那么你没关系。但是,如果您打算使用getput或者您可能会多次迭代它,建议您创建新的Map,以便过滤和转换的工作只进行一次

Maps.newHashMap(Maps.transformValues(Maps.filterValues(map, predicate), function));

此处filtertransform的顺序正确无误,因此您不会transform已过滤的值。