Wie kann ich Map-Einträge basierend auf den Einträgen filtern?

7

Ich benutze Google Guava 12 und habe eine Karte:

%Vor%

Ich habe ein Set:

%Vor%

Wie kann ich Einträge in roomPrice map basierend auf policy filtern und die gefilterte Karte zurückgeben?

filteredMap muss alle Werte von policy haben. Falls roomPrice map keinen Eintrag von der Richtlinie hat, möchte ich stattdessen den Standardwert eingeben.

    
brainydexter 27.06.2012, 07:33
quelle

2 Antworten

27

Da Sie eine Reihe von Tasten haben, sollten Sie Maps.filterkeys () , auch Guava bietet eine ziemlich gute Auswahl an Prädikaten, die Sie sofort verwenden können. In Ihrem Fall etwas wie Prädikate.in () sollte funktionieren.

Sie enden also im Grunde mit:

%Vor%

Ich hoffe, es hilft.

    
Francisco Paulo 27.06.2012, 08:09
quelle
2
  • Überschreiben und implementieren Sie equals und hashcode in %Code%.
  • Durchlaufen Sie den Schlüsselsatz OccupancyType und sammeln Sie die Elemente im Filter enthalten.

In etwa so:

%Vor%

Aktualisieren

Ok, nachdem du ein wenig auf Google Guava gelesen hast, solltest du etwas wie:

tun können %Vor%

und dann

%Vor%

sollte den Trick machen.

    
Jeshurun 27.06.2012 07:47
quelle

Tags und Links