bra*_*ter 9 java predicate map set guava
我正在使用谷歌番石榴12并有一张地图:
Map<OccupancyType, BigDecimal> roomPrice;
Run Code Online (Sandbox Code Playgroud)
我有一套:
Set<OccupancyType> policy;
Run Code Online (Sandbox Code Playgroud)
如何过滤roomPrice map基于的条目policy并返回过滤后的地图?
filteredMap需要拥有所有的价值policy.如果roomPrice地图没有来自策略的条目,我想改为输入默认值.
Fra*_*ulo 29
由于你有一组键,你应该使用Maps.filterkeys(),Guava也提供了一组非常好的谓词,你可以开箱即用.在你的情况下,像Predicates.in()这样的东西应该工作.
所以基本上你最终得到:
Map<OccupancyType, BigDecimal> filteredMap
= Maps.filterKeys(roomPrice, Predicates.in(policy));
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你.