2015-05-04 86 views
2

我有Map<String,List<Object>>並且對於每個key我需要篩選List<Object>。執行過濾器時,我需要從List<Object>中刪除項目。根據條件篩選地圖java設計實施查詢

我可以迭代地圖並移除我想要的元素,但是我還需要跟蹤已移除的元素。我希望過濾器功能很簡單,只需即可,過濾器,在這種情況下,您總是會獲得帶有過濾值的Map<String,List<Object>>。問題是,我怎麼知道哪些記錄已被刪除?

我可以編寫另一個函數來返回被丟棄的項目,但這意味着我將在相同的數據結構上迭代兩次。或者我可以在過濾器中存儲變量,然後存儲值(然後我可以檢索),但看起來很亂。 (我也可以使用collectionUtils分離功能 - 另一種選擇)

是否有其他方式/設計模式,我可以用於實現?

+1

類似審計線索。你有API或示例代碼來構建一個例子嗎? –

+0

我現在所有的都是一個地圖迭代,如果匹配條件保持數組列表條目,否則刪除。返回過濾後的地圖。我可以再次迭代地圖,或者使用apache commons api來給出分隔符(它返回被刪除的元素)。我想要使​​用api進行過濾,想自己實現這一點 –

回答

0

看一看這個post
1.創建一個接口(或一組)來指示要保留的值。
2.創建過濾器函數來存儲保存的值。 (您也可以存儲丟棄的)