Tôi đang sử dụng google ổi 12 và có một bản đồ:làm thế nào tôi có thể lọc các mục bản đồ dựa trên tập hợp các mục
Map<OccupancyType, BigDecimal> roomPrice;
Tôi có một Set:
Set<OccupancyType> policy;
Làm thế nào tôi có thể lọc các mục trong số roomPrice map
dựa trên policy
và trả lại bản đồ đã lọc?
filteredMap
cần phải có tất cả các giá trị từ policy
. Trong trường hợp, bản đồ roomPrice không có mục nhập từ chính sách, thay vào đó, tôi muốn nhập giá trị mặc định.
Cảm ơn! Tôi vẫn còn rất mới để Predicates và không chắc chắn làm thế nào nó sẽ tạo ra một vị ngữ sẽ làm việc trên bản đồ của tôi. Ngoài ra, có cách nào để đảm bảo, lọcMap nên có tất cả các giá trị từ chính sách. Trong trường hợp, bản đồ roomPrice không có mục nhập từ chính sách, thay vào đó, tôi muốn nhập giá trị mặc định. – brainydexter
Nếu bạn có một bản đồ có các mục "mặc định", bạn có thể làm một cái gì đó như: filtersMap.putAll (Maps.difference (filtersMap, defaultMap) .entriesOnlyOnRight()); –
Ngoài ra, bạn có thể xem bài viết này: http://scaramoche.blogspot.de/2010/08/googles-guava-library-tutorial-part-4.html Nó có một số ví dụ tốt đẹp về sử dụng Predicate. –