2011-09-20 79 views
0

如何从一个集中删除所有对象,这些对象也存在于另一个集中。为的exaple:从java集中删除对象

SET 1 = { a,b,c,d,e,f) | 
         |---> NEW SET 1= (a,b,d,e} 
SET 2 = {c,f)   | 

回答

6

我不知道是什么问题,从org.apache.commons.collections.CollectionUtils

set1.removeAll(set2); 
+1

注意,一个则要保证包含在集合中的对象的'equals'和'hashCode'实现的行为就像它们应该那样,或者它不会做你想要的。 – Romain

+0

100%同意。非常简单:) – chzbrgla

0

代码

public static Collection subtract(final Collection a, final Collection b) { 
     ArrayList list = new ArrayList(a); 
     for (Iterator it = b.iterator(); it.hasNext();) { 
      list.remove(it.next()); 
     } 
     return list; 
    }