Java tutorial
import org.apache.commons.collections.collection.*; import org.apache.commons.collections.set.*; import java.util.Set; import java.util.HashSet; import java.util.Iterator; import java.util.Collection; public class SetExampleV2 { public static void main(String args[]) { // create two sets Set set1 = new HashSet(); set1.add("Red"); set1.add("Green"); Set set2 = new HashSet(); set2.add("Yellow"); set2.add("Red"); // create a composite set out of these two CompositeSet composite = new CompositeSet(); // set the class that handles additions, conflicts etc // composite.setMutator(new CompositeMutator()); // initialize the composite with the sets // Cannot be used if set1 and set2 intersect is not null and // a strategy to deal with it has not been set composite.addComposited(new Set[] { set1, set2 }); // do some addition/deletions // composite.add("Pink"); // composite.remove("Green"); // whats left in the composite? Iterator itr = composite.iterator(); while (itr.hasNext()) { System.err.println(itr.next()); } } } class CompositeMutator implements CompositeSet.SetMutator { public void resolveCollision(CompositeSet comp, Set existing, Set added, Collection intersection) { added.removeAll(intersection); } public boolean add(CompositeCollection collection, Collection[] collections, Object obj) { return collections[0].add(obj); } public boolean remove(CompositeCollection collection, Collection[] collections, Object obj) { return collections[0].remove(obj); } public boolean addAll(CompositeCollection collection, Collection[] collections, Collection coll) { return collections[0].addAll(coll); } }