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, toText
public FastSet()
public FastSet(String id)
id
- the unique identifier for this map.IllegalArgumentException
- if the identifier is not unique.PersistentContext.Reference
public 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 Collection
size
in interface Set
size
in class FastCollection
public final boolean add(Object value)
add
in interface Collection
add
in interface Set
add
in class FastCollection
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 iterator()
StackContext
).iterator
in interface Iterable
iterator
in interface Collection
iterator
in interface Set
iterator
in class FastCollection
public Collection unmodifiable()
FastCollection
UnsupportedOperationException
being thrown.unmodifiable
in class FastCollection
public final void clear()
FastCollection
clear
in interface Collection
clear
in interface Set
clear
in class FastCollection
public final boolean contains(Object o)
FastCollection
contains
in interface Collection
contains
in interface Set
contains
in class FastCollection
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)
FastCollection
remove
in interface Collection
remove
in interface Set
remove
in class FastCollection
o
- 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.this
public FastComparator getValueComparator()
FastCollection
FastComparator.DEFAULT
).getValueComparator
in class FastCollection
public void reset()
Reusable
public final FastCollection.Record head()
FastCollection
head().getNext()
holds the first collection value.head
in class FastCollection
public final FastCollection.Record tail()
FastCollection
tail().getPrevious()
holds the last collection value.tail
in class FastCollection
public final Object valueOf(FastCollection.Record record)
FastCollection
valueOf
in class FastCollection
record
- the record whose current value is returned.public final void delete(FastCollection.Record record)
FastCollection
Implementation 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
record
- the record to be removed.Copyright © 2005–2014 Javolution. All rights reserved.