wie kann ich filter-map-Einträge basierend auf dem Satz von Einträgen
Ich bin mit google guava 12 und eine Karte:
Map<OccupancyType, BigDecimal> roomPrice;
Habe ich ein Set:
Set<OccupancyType> policy;
Wie kann ich die filter-Einträge in der roomPrice map
basierend auf policy
und RÜCKFÜHRUNG der gefilterten map ?
filteredMap
haben muss, um alle Werte aus policy
. Im Fall, roomPrice Karte nicht über einen Eintrag von Politik, ich möchte die Eingabe Standardwert statt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da Sie eine Reihe von Tasten, die Sie verwenden sollten Maps.filterkeys(), auch Guava bietet eine ziemlich gute Reihe von Prädikaten, die Sie verwenden können, aus der box. In Ihrem Fall etwas wie Prädikate.in() funktionieren sollte.
Also im Grunde Sie am Ende mit:
Hoffe, es hilft.
equals
undhashcode
inOccupancyType
.roomPrice
's keyset und sammeln Sie dieElemente, die in den filter.
Etwas wie dieses:
Update
Ok, nach der Lektüre ein wenig auf Google Guava, Sie sollten in der Lage sein, etwas zu tun:
dann
sollte den trick tun.
Maps.filterEntries(roomPrice, priceFilter);