| java.util.AbstractSet com.jofti.util.FastSet
FastSet | public class FastSet extends AbstractSet implements Cloneable,Serializable(Code) | | This is a specific implementation of a Set (heavily based on the HashMap code) that provides for quicker and cached
return of entries in the toArray method.
Once a call to the toArray has been made, the resulting Object[] is cached for future calls.
Any mutator method called on the set will clear the cached array. In addition, the cached array is held as a SoftReference so the
Garbage Collector can clear the value if it needs to.
The degenerate behaviour without the cache is around 50% of the Hashset implementation.
author: swoodcock |
Inner Class :static class Entry | |
Field Summary | |
final static int | DEFAULT_INITIAL_CAPACITY The default initial capacity - MUST be a power of two. | final static float | DEFAULT_LOAD_FACTOR The load factor used when none specified in constructor. | final static int | MAXIMUM_CAPACITY The maximum capacity, used if a higher value is implicitly specified
by either of the constructors with arguments. | final static Object | NULL_KEY Value representing null keys inside tables. | float | loadFactor The load factor for the hash table. | transient SoftReference | lookupArray | transient volatile int | modCount The number of times this HashMap has been structurally modified
Structural modifications are those that change the number of mappings in
the HashMap or otherwise modify its internal structure (e.g.,
rehash). | transient int | size The number of key-value mappings contained in this identity hash map. | transient Entry[] | table The table, resized as necessary. | int | threshold The next size value at which to resize (capacity * load factor). |
Constructor Summary | |
public | FastSet() Constructs an empty HashMap with the default initial
capacity and the default load factor (0.75). |
DEFAULT_INITIAL_CAPACITY | final static int DEFAULT_INITIAL_CAPACITY(Code) | | The default initial capacity - MUST be a power of two.
|
DEFAULT_LOAD_FACTOR | final static float DEFAULT_LOAD_FACTOR(Code) | | The load factor used when none specified in constructor.
|
MAXIMUM_CAPACITY | final static int MAXIMUM_CAPACITY(Code) | | The maximum capacity, used if a higher value is implicitly specified
by either of the constructors with arguments.
MUST be a power of two <= 1<<30.
|
NULL_KEY | final static Object NULL_KEY(Code) | | Value representing null keys inside tables.
|
loadFactor | float loadFactor(Code) | | The load factor for the hash table.
|
modCount | transient volatile int modCount(Code) | | The number of times this HashMap has been structurally modified
Structural modifications are those that change the number of mappings in
the HashMap or otherwise modify its internal structure (e.g.,
rehash). This field is used to make iterators on Collection-views of
the HashMap fail-fast. (See ConcurrentModificationException).
|
size | transient int size(Code) | | The number of key-value mappings contained in this identity hash map.
|
table | transient Entry[] table(Code) | | The table, resized as necessary. Length MUST Always be a power of two.
|
threshold | int threshold(Code) | | The next size value at which to resize (capacity * load factor).
|
FastSet | public FastSet()(Code) | | Constructs an empty HashMap with the default initial
capacity and the default load factor (0.75).
throws: IllegalArgumentException - if the initial capacity is negative. |
addEntry | void addEntry(int hash, Object value, int bucketIndex)(Code) | | Add a new entry with the specified key, value and hash code to
the specified bucket. It is the responsibility of this
method to resize the table if appropriate.
Subclass overrides this to alter the behavior of put method.
|
clear | public void clear()(Code) | | |
eq | static boolean eq(Object x, Object y)(Code) | | Check for equality of non-null reference x and possibly-null y.
|
indexFor | static int indexFor(int h, int length)(Code) | | Returns index for hash code h.
|
isEmpty | public boolean isEmpty()(Code) | | |
removeEntryForKey | Entry removeEntryForKey(Object value)(Code) | | Removes and returns the entry associated with the specified key
in the HashMap. Returns null if the HashMap contains no mapping
for this key.
|
resize | void resize(int newCapacity)(Code) | | |
transfer | void transfer(Entry[] newTable)(Code) | | Transfer all entries from current table to newTable.
|
unmaskNull | static Object unmaskNull(Object key)(Code) | | Returns key represented by specified internal representation.
|
|
|