public class SubSet<E> extends AbstractSet<E> implements Cloneable
iterator() will iterate items in the
ascending order.
This implementation is not thread-safe.
| Modifier and Type | Class | Description |
|---|---|---|
protected class |
SubSet.SubSetIterator |
Iterator for the contents of a subset in the "removed" mode.
|
| Modifier and Type | Field | Description |
|---|---|---|
protected static Object[] |
EMPTY_ARRAY |
An empty immutable array.
|
protected boolean |
m_fRetained |
Toggles between whether the modifications are removed or retained.
|
protected Set<E> |
m_setMod |
The removed or retained items.
|
protected Set<E> |
m_setOrig |
The underlying set (assumed immutable).
|
| Constructor | Description |
|---|---|
SubSet(Set<? extends E> set) |
Construct this set based on an existing set.
|
| Modifier and Type | Method | Description |
|---|---|---|
boolean |
add(E e) |
|
boolean |
addAll(Collection<? extends E> col) |
|
void |
clear() |
|
Object |
clone() |
Clone the subset.
|
boolean |
contains(Object o) |
|
boolean |
containsAll(Collection<?> col) |
|
protected Set<E> |
ensureRemoved() |
Get a mutable set of items that are removed in the subset.
|
protected Set<E> |
ensureRetained() |
Get a mutable set of items that are retained in the subset.
|
Set<? extends E> |
getOriginal() |
Determine what items were in the original set.
|
Set<E> |
getRemoved() |
Determine what items were removed from the subset.
|
Set<E> |
getRetained() |
Determine what items were added to the subset.
|
protected Set<E> |
instantiateModificationSet(int cSize) |
Instantiate a new modification set containing either removed or
retained items.
|
boolean |
isEmpty() |
|
boolean |
isModified() |
Determine if the set has been modified.
|
boolean |
isTrackingRetained() |
Determine if the SubSet is tracking retained items versus removed
items.
|
Iterator |
iterator() |
|
boolean |
remove(Object o) |
|
boolean |
removeAll(Collection<?> col) |
|
void |
reset() |
Discard the changes to the set ("rollback").
|
protected void |
resetState(Set setOrig,
Set setMod,
boolean fRetained) |
Reset the state of the subset according to the specified parameters.
|
void |
resolve() |
Apply the changes to the underlying set ("commit").
|
boolean |
retainAll(Collection<?> col) |
|
protected void |
retainAllInternal(Collection colOuter,
Collection colMatch,
Set setExclude) |
Instantiate a new retained set with all elements in the specified
collection that also exist in the provided
colMatch collection
and are not excluded. |
int |
size() |
|
Object[] |
toArray() |
|
Object[] |
toArray(Object[] ao) |
equals, hashCodetoStringfinalize, getClass, notify, notifyAll, wait, wait, waitspliteratorparallelStream, removeIf, streamprotected static final Object[] EMPTY_ARRAY
protected boolean m_fRetained
public Set<? extends E> getOriginal()
public boolean isModified()
public boolean isTrackingRetained()
public Set<E> getRetained()
public Set<E> getRemoved()
protected Set<E> instantiateModificationSet(int cSize)
cSize - an initial size of the modification setprotected Set<E> ensureRetained()
protected Set<E> ensureRemoved()
public void resolve()
public void reset()
protected void resetState(Set setOrig, Set setMod, boolean fRetained)
setOrig - the new original setsetMod - the set of removed or retained entries, depending on
the fRetained flagfRetained - if true setMod contains the retained entries;
otherwise the removed entriespublic Iterator iterator()
public boolean isEmpty()
isEmpty in interface Collection<E>isEmpty in interface Set<E>isEmpty in class AbstractCollection<E>public int size()
size in interface Collection<E>size in interface Set<E>size in class AbstractCollection<E>public boolean contains(Object o)
contains in interface Collection<E>contains in interface Set<E>contains in class AbstractCollection<E>public boolean containsAll(Collection<?> col)
containsAll in interface Collection<E>containsAll in interface Set<E>containsAll in class AbstractCollection<E>public boolean add(E e)
add in interface Collection<E>add in interface Set<E>add in class AbstractCollection<E>public boolean addAll(Collection<? extends E> col)
addAll in interface Collection<E>addAll in interface Set<E>addAll in class AbstractCollection<E>public boolean remove(Object o)
remove in interface Collection<E>remove in interface Set<E>remove in class AbstractCollection<E>public boolean removeAll(Collection<?> col)
removeAll in interface Collection<E>removeAll in interface Set<E>removeAll in class AbstractSet<E>public boolean retainAll(Collection<?> col)
retainAll in interface Collection<E>retainAll in interface Set<E>retainAll in class AbstractCollection<E>public void clear()
clear in interface Collection<E>clear in interface Set<E>clear in class AbstractCollection<E>public Object[] toArray()
toArray in interface Collection<E>toArray in interface Set<E>toArray in class AbstractCollection<E>public Object[] toArray(Object[] ao)
toArray in interface Collection<E>toArray in interface Set<E>toArray in class AbstractCollection<E>public Object clone()
protected void retainAllInternal(Collection colOuter, Collection colMatch, Set setExclude)
colMatch collection
and are not excluded.colOuter - collection to iteratecolMatch - each element in colOuter should be present in this
collection such that (colOuter ∩ colMatch)setExclude - optional set of excluded elements