| java.lang.Object org.apache.commons.collections.list.AbstractLinkedList org.apache.commons.collections.list.NodeCachingLinkedList
NodeCachingLinkedList | public class NodeCachingLinkedList extends AbstractLinkedList implements Serializable(Code) | | A List implementation that stores a cache of internal Node objects
in an effort to reduce wasteful object creation.
A linked list creates one Node for each item of data added. This can result in
a lot of object creation and garbage collection. This implementation seeks to
avoid that by maintaining a store of cached nodes.
This implementation is suitable for long-lived lists where both add and remove
are used. Short-lived lists, or lists which only grow will have worse performance
using this class.
Note that this implementation is not synchronized.
since: Commons Collections 3.0 version: $Revision: 348299 $ $Date: 2005-11-22 23:51:45 +0000 (Tue, 22 Nov 2005) $ author: Jeff Varszegi author: Rich Dougherty author: Phil Steitz author: Stephen Colebourne |
Method Summary | |
protected void | addNodeToCache(Node node) Adds a node to the cache, if the cache isn't full. | protected Node | createNode(Object value) Creates a new node, either by reusing one from the cache or creating
a new one. | protected int | getMaximumCacheSize() Gets the maximum size of the cache. | protected Node | getNodeFromCache() Gets a node from the cache. | protected boolean | isCacheFull() Checks whether the cache is full. | protected void | removeAllNodes() Removes all the nodes from the list, storing as many as required in the
cache for reuse. | protected void | removeNode(Node node) Removes the node from the list, storing it in the cache for reuse
if the cache is not yet full. | protected void | setMaximumCacheSize(int maximumCacheSize) Sets the maximum size of the cache. | protected void | shrinkCacheToMaximumSize() Reduce the size of the cache to the maximum, if necessary. |
cacheSize | protected transient int cacheSize(Code) | | The size of the cache.
|
firstCachedNode | protected transient Node firstCachedNode(Code) | | The first cached node, or null if no nodes are cached.
Cached nodes are stored in a singly-linked list with
next pointing to the next element.
|
maximumCacheSize | protected int maximumCacheSize(Code) | | The maximum size of the cache.
|
NodeCachingLinkedList | public NodeCachingLinkedList()(Code) | | Constructor that creates.
|
NodeCachingLinkedList | public NodeCachingLinkedList(Collection coll)(Code) | | Constructor that copies the specified collection
Parameters: coll - the collection to copy |
NodeCachingLinkedList | public NodeCachingLinkedList(int maximumCacheSize)(Code) | | Constructor that species the maximum cache size.
Parameters: maximumCacheSize - the maximum cache size |
addNodeToCache | protected void addNodeToCache(Node node)(Code) | | Adds a node to the cache, if the cache isn't full.
The node's contents are cleared to so they can be garbage collected.
Parameters: node - the node to add to the cache |
createNode | protected Node createNode(Object value)(Code) | | Creates a new node, either by reusing one from the cache or creating
a new one.
Parameters: value - value of the new node the newly created node |
getMaximumCacheSize | protected int getMaximumCacheSize()(Code) | | Gets the maximum size of the cache.
the maximum cache size |
getNodeFromCache | protected Node getNodeFromCache()(Code) | | Gets a node from the cache. If a node is returned, then the value of
NodeCachingLinkedList.cacheSize is decreased accordingly. The node that is returned
will have null values for next, previous and element.
a node, or null if there are no nodes in the cache. |
isCacheFull | protected boolean isCacheFull()(Code) | | Checks whether the cache is full.
true if the cache is full |
removeAllNodes | protected void removeAllNodes()(Code) | | Removes all the nodes from the list, storing as many as required in the
cache for reuse.
|
removeNode | protected void removeNode(Node node)(Code) | | Removes the node from the list, storing it in the cache for reuse
if the cache is not yet full.
Parameters: node - the node to remove |
setMaximumCacheSize | protected void setMaximumCacheSize(int maximumCacheSize)(Code) | | Sets the maximum size of the cache.
Parameters: maximumCacheSize - the new maximum cache size |
shrinkCacheToMaximumSize | protected void shrinkCacheToMaximumSize()(Code) | | Reduce the size of the cache to the maximum, if necessary.
|
Methods inherited from org.apache.commons.collections.list.AbstractLinkedList | public boolean add(Object value)(Code)(Java Doc) public void add(int index, Object value)(Code)(Java Doc) public boolean addAll(Collection coll)(Code)(Java Doc) public boolean addAll(int index, Collection coll)(Code)(Java Doc) public boolean addFirst(Object o)(Code)(Java Doc) public boolean addLast(Object o)(Code)(Java Doc) protected void addNode(Node nodeToInsert, Node insertBeforeNode)(Code)(Java Doc) protected void addNodeAfter(Node node, Object value)(Code)(Java Doc) protected void addNodeBefore(Node node, Object value)(Code)(Java Doc) public void clear()(Code)(Java Doc) public boolean contains(Object value)(Code)(Java Doc) public boolean containsAll(Collection coll)(Code)(Java Doc) protected Node createHeaderNode()(Code)(Java Doc) protected Node createNode(Object value)(Code)(Java Doc) protected Iterator createSubListIterator(LinkedSubList subList)(Code)(Java Doc) protected ListIterator createSubListListIterator(LinkedSubList subList, int fromIndex)(Code)(Java Doc) protected void doReadObject(ObjectInputStream inputStream) throws IOException, ClassNotFoundException(Code)(Java Doc) protected void doWriteObject(ObjectOutputStream outputStream) throws IOException(Code)(Java Doc) public boolean equals(Object obj)(Code)(Java Doc) public Object get(int index)(Code)(Java Doc) public Object getFirst()(Code)(Java Doc) public Object getLast()(Code)(Java Doc) protected Node getNode(int index, boolean endMarkerAllowed) throws IndexOutOfBoundsException(Code)(Java Doc) public int hashCode()(Code)(Java Doc) public int indexOf(Object value)(Code)(Java Doc) protected void init()(Code)(Java Doc) public boolean isEmpty()(Code)(Java Doc) protected boolean isEqualValue(Object value1, Object value2)(Code)(Java Doc) public Iterator iterator()(Code)(Java Doc) public int lastIndexOf(Object value)(Code)(Java Doc) public ListIterator listIterator()(Code)(Java Doc) public ListIterator listIterator(int fromIndex)(Code)(Java Doc) public Object remove(int index)(Code)(Java Doc) public boolean remove(Object value)(Code)(Java Doc) public boolean removeAll(Collection coll)(Code)(Java Doc) protected void removeAllNodes()(Code)(Java Doc) public Object removeFirst()(Code)(Java Doc) public Object removeLast()(Code)(Java Doc) protected void removeNode(Node node)(Code)(Java Doc) public boolean retainAll(Collection coll)(Code)(Java Doc) public Object set(int index, Object value)(Code)(Java Doc) public int size()(Code)(Java Doc) public List subList(int fromIndexInclusive, int toIndexExclusive)(Code)(Java Doc) public Object[] toArray()(Code)(Java Doc) public Object[] toArray(Object[] array)(Code)(Java Doc) public String toString()(Code)(Java Doc) protected void updateNode(Node node, Object value)(Code)(Java Doc)
|
|
|