我正在使用Google Guava 12,并有一张 map :

Map<OccupancyType, BigDecimal> roomPrice;

我有一套:
Set<OccupancyType> policy;

如何根据roomPrice map过滤policy中的条目并返回过滤后的 map ?
filteredMap需要具有policy中的所有值。如果roomPrice映射没有策略条目,我想输入默认值。

最佳答案

由于您具有一组键,因此您应该使用Maps.filterkeys(),而且Guava还提供了非常好的谓词集,您可以直接使用它们。在您的情况下,应使用Predicates.in()之类的东西。

因此,基本上,您最终得到:

Map<OccupancyType, BigDecimal> filteredMap
    = Maps.filterKeys(roomPrice, Predicates.in(policy));

希望能帮助到你。

10-08 07:13