sto usando google guava 12 e avere una mappa:come posso filtrare voci della mappa in base a serie di voci
Map<OccupancyType, BigDecimal> roomPrice;
Ho un Set:
Set<OccupancyType> policy;
Come posso filtrare le voci nel roomPrice map
basato su policy
e restituire la mappa filtrata?
filteredMap
deve avere tutti i valori da policy
. Nel caso, la mappa di roomPrice non ha una voce dalla policy, vorrei invece inserire il valore di default.
Grazie! Sono ancora molto nuovo ai Predicati e non sono sicuro di come genererà un predicato che funzionerebbe sulla mia mappa. Inoltre, esiste un modo per garantire che filteredMap abbia tutti i valori della policy. Nel caso, la mappa di roomPrice non ha una voce dalla policy, vorrei invece inserire il valore di default. – brainydexter
Se si dispone di una mappa con voci "predefinite", si può fare qualcosa come: filteredMap.putAll (Maps.difference (filteredMap, defaultMap) .entriesOnlyOnRight()); –
Inoltre, puoi dare un'occhiata a questo articolo: http://scaramoche.blogspot.de/2010/08/googles-guava-library-tutorial-part-4.html Ha alcuni buoni esempi di utilizzo di Predicate. –