2014-09-19 112 views
0

我有一個HOUSE對象集合,每個HOUSE對象都有元素 - ID,NAME。我從另一個來源獲得另一個ID的集合。我想從HOUSE對象的原始集合中刪除具有這些ID的HOUSE對象。我正在嘗試這樣的東西..但我無法將exclusionIDsList傳遞給內部類Predicate。任何其他想法?CollectionsUtils使用對象元素集合過濾對象的集合

List<HOUSE> originalHouses = ...//List of houses 
List<ID> exclusionIDsList = ...//List of IDs to exclude 

CollectionUtils.filter(originalHouses, new Predicate() { 
    @Override 
    public boolean evaluate(Object arg0) { 
     if(exclusionIDsList.contains(((HOUSE)arg0).getID()) 
      return false; 
     else return true; 
    } 
}); 
+2

而只是''返回exclusionIDsList.contains(((HOUSE)H).getID();'' – 2014-09-19 23:01:52

回答

1

聲明exclusionIDsListfinal

final List<ID> exclusionIDsList = ... 
+1

併爲此目的,''Set'!如果''ID實現''hascode'''''''',那麼'是一個更好的選擇:''最後設置 ids = new HashSet <>(exclusionIDsList);' – 2014-09-19 23:05:46