Java by API/java.util/AbstractSet
AbstractSet: removeAll(Collection <?> c)
<source lang="java">
/*
Output:
true [I, G, E]
* */
import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Set; public class MainClass {
public static void main(String args[]) { String orig[] = { "I", "P", "E", "G", "P" }; String act[] = { "P", "P", "S" }; Set origSet = new HashSet(Arrays.asList(orig)); List actList = Arrays.asList(act); System.out.println(origSet.removeAll(actList)); System.out.println(origSet); }
}
</source>
extends AbstractSet
<source lang="java">
/*
Output:
[V, M, N]
* */
import java.io.Serializable; import java.util.AbstractSet; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.Set; public class MainClass {
public static void main(String args[]) { Set map = new ArraySet(); map.add("V"); map.add("M"); map.add("N"); System.out.println(map); }
} class ArraySet extends AbstractSet implements Cloneable, Serializable {
private ArrayList list; public ArraySet() { list = new ArrayList(); } public ArraySet(Collection col) { list = new ArrayList(); // No need to check for dups if col is a set Iterator itor = col.iterator(); if (col instanceof Set) { while (itor.hasNext()) { list.add(itor.next()); } } else { while (itor.hasNext()) { add(itor.next()); } } } public Iterator iterator() { return list.iterator(); } public int size() { return list.size(); } public boolean add(Object element) { boolean modified; if (modified = !list.contains(element)) { list.add(element); } return modified; } public boolean remove(Object element) { return list.remove(element); } public boolean isEmpty() { return list.isEmpty(); } public boolean contains(Object element) { return list.contains(element); } public void clear() { list.clear(); } public Object clone() { try { ArraySet newSet = (ArraySet) super.clone(); newSet.list = (ArrayList) list.clone(); return newSet; } catch (CloneNotSupportedException e) { throw new InternalError(); } }
}
</source>