public class FastSet<E> extends FastCollection<E> implements Set<E>, Reusable
This class represents a set collection backed by a FastMap;
smooth capacity increase and no rehashing ever performed.
FastSet, as for any FastCollection sub-class, supports
thread-safe fast iterations without using iterators. For example:[code]
for (FastSet.Record r = set.head(), end = set.tail(); (r = r.getNext()) != end;) {
Object value = set.valueOf(r);
}[/code]
FastCollection.Record| Constructor and Description |
|---|
FastSet()
Creates a set of small initial capacity.
|
FastSet(int capacity)
Creates a set of specified initial capacity; unless the set size
reaches the specified capacity, operations on this set will not allocate
memory (no lazy object creation).
|
FastSet(Set<? extends E> elements)
Creates a set containing the specified elements, in the order they
are returned by the set iterator.
|
FastSet(String id)
Creates a persistent set associated to the specified unique identifier
(convenience method).
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
add(E value)
Adds the specified value to this set if it is not already present.
|
void |
clear()
Removes all of the values from this collection (optional operation).
|
boolean |
contains(Object o)
Indicates if this collection contains the specified value.
|
void |
delete(FastCollection.Record record)
Deletes the specified record from this collection.
|
FastComparator<? super E> |
getValueComparator()
Returns the value comparator for this collection (default
FastComparator.DEFAULT). |
FastCollection.Record |
head()
Returns the head record of this collection; it is the record such as
head().getNext() holds the first collection value. |
Iterator<E> |
iterator()
Returns an iterator over the elements in this set
(allocated on the stack when executed in a
StackContext). |
static <E> FastSet<E> |
newInstance()
Returns a new, preallocated or
recycled set instance
(on the stack when executing in a StackContext). |
static void |
recycle(FastSet instance)
Recycles a set
instance immediately
(on the stack when executing in a StackContext). |
boolean |
remove(Object o)
Removes the first occurrence in this collection of the specified value
(optional operation).
|
void |
reset()
Resets the internal state of this object to its default values.
|
FastSet<E> |
setValueComparator(FastComparator<? super E> comparator)
Sets the comparator to use for value equality.
|
int |
size()
Returns the number of elements in this set (its cardinality).
|
FastCollection.Record |
tail()
Returns the tail record of this collection; it is the record such as
tail().getPrevious() holds the last collection value. |
Set<E> |
unmodifiable()
Returns the unmodifiable view associated to this collection.
|
E |
valueOf(FastCollection.Record record)
Returns the collection value for the specified record.
|
addAll, containsAll, equals, hashCode, isEmpty, removeAll, retainAll, shared, toArray, toArray, toString, toTextclone, finalize, getClass, notify, notifyAll, wait, wait, waitaddAll, containsAll, equals, hashCode, isEmpty, removeAll, retainAll, spliterator, toArray, toArrayparallelStream, removeIf, streampublic FastSet()
public FastSet(String id)
id - the unique identifier for this map.IllegalArgumentException - if the identifier is not unique.PersistentContext.Referencepublic FastSet(int capacity)
capacity - the initial capacity.public static <E> FastSet<E> newInstance()
recycled set instance
(on the stack when executing in a StackContext).public static void recycle(FastSet instance)
instance immediately
(on the stack when executing in a StackContext).public final int size()
size in interface Collection<E>size in interface Set<E>size in class FastCollection<E>public final boolean add(E value)
add in interface Collection<E>add in interface Set<E>add in class FastCollection<E>value - the value to be added to this set.true if this set did not already contain the
specified element.NullPointerException - if the value is null.public Iterator<E> iterator()
StackContext).public Set<E> unmodifiable()
FastCollectionUnsupportedOperationException being thrown.unmodifiable in class FastCollection<E>public final void clear()
FastCollectionclear in interface Collection<E>clear in interface Set<E>clear in class FastCollection<E>public final boolean contains(Object o)
FastCollectioncontains in interface Collection<E>contains in interface Set<E>contains in class FastCollection<E>o - the value whose presence in this collection
is to be tested.true if this collection contains the specified
value;false otherwise.public final boolean remove(Object o)
FastCollectionremove in interface Collection<E>remove in interface Set<E>remove in class FastCollection<E>o - the value to be removed from this collection.true if this collection contained the specified
value; false otherwise.public FastSet<E> setValueComparator(FastComparator<? super E> comparator)
comparator - the value comparator.thispublic FastComparator<? super E> getValueComparator()
FastCollectionFastComparator.DEFAULT).getValueComparator in class FastCollection<E>public void reset()
Reusablepublic final FastCollection.Record head()
FastCollectionhead().getNext() holds the first collection value.head in class FastCollection<E>public final FastCollection.Record tail()
FastCollectiontail().getPrevious() holds the last collection value.tail in class FastCollection<E>public final E valueOf(FastCollection.Record record)
FastCollectionvalueOf in class FastCollection<E>record - the record whose current value is returned.public final void delete(FastCollection.Record record)
FastCollectionImplementation must ensure that removing a record from the collection does not affect in any way the records preceding the record being removed (it might affect the next records though, e.g. in a list collection, the indices of the subsequent records will change).
delete in class FastCollection<E>record - the record to be removed.Copyright © 2005–2024 Javolution. All rights reserved.