public class FastSet extends FastCollection implements Set, 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 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(Object 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 |
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 |
iterator()
Returns an iterator over the elements in this set
(allocated on the stack when executed in a
StackContext). |
static FastSet |
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 |
setValueComparator(FastComparator 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. |
Collection |
unmodifiable()
Returns the unmodifiable view associated to this collection.
|
Object |
valueOf(FastCollection.Record record)
Returns the collection value for the specified record.
|
addAll, containsAll, equals, hashCode, isEmpty, removeAll, retainAll, shared, toArray, toArray, toString, toTextpublic 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 FastSet(Set elements)
elements - the elements to be placed into this fast set.public static FastSet 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 Collectionsize in interface Setsize in class FastCollectionpublic final boolean add(Object value)
add in interface Collectionadd in interface Setadd in class FastCollectionvalue - 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 iterator()
StackContext).iterator in interface Iterableiterator in interface Collectioniterator in interface Setiterator in class FastCollectionpublic Collection unmodifiable()
FastCollectionUnsupportedOperationException being thrown.unmodifiable in class FastCollectionpublic final void clear()
FastCollectionclear in interface Collectionclear in interface Setclear in class FastCollectionpublic final boolean contains(Object o)
FastCollectioncontains in interface Collectioncontains in interface Setcontains in class FastCollectiono - 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 Collectionremove in interface Setremove in class FastCollectiono - the value to be removed from this collection.true if this collection contained the specified
value; false otherwise.public FastSet setValueComparator(FastComparator comparator)
comparator - the value comparator.thispublic FastComparator getValueComparator()
FastCollectionFastComparator.DEFAULT).getValueComparator in class FastCollectionpublic void reset()
Reusablepublic final FastCollection.Record head()
FastCollectionhead().getNext() holds the first collection value.head in class FastCollectionpublic final FastCollection.Record tail()
FastCollectiontail().getPrevious() holds the last collection value.tail in class FastCollectionpublic final Object valueOf(FastCollection.Record record)
FastCollectionvalueOf in class FastCollectionrecord - 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 FastCollectionrecord - the record to be removed.Copyright © 2005–2021 Javolution. All rights reserved.