Class Tree

  • All Implemented Interfaces:
    Serializable, Cloneable

    public class Tree
    extends Base
    implements Cloneable, Serializable
    A thread-safe balanced binary search tree.

    As of Coherence 3.3 this class is a wrapper around TreeMap.

    Note: Where practical, use java.util.TreeMap; including external syncronization as necessary.

    Author:
    cp 1997.09.05; mf 2007.10.16
    See Also:
    Serialized Form
    • Field Detail

      • m_tree

        protected TreeMap m_tree
        The delgate tree.
    • Constructor Detail

      • Tree

        public Tree()
        Default constructor.
    • Method Detail

      • add

        public void add​(Comparable key)
        Add the passed key to the tree.
        Parameters:
        key - the key to add to the tree
      • put

        public void put​(Comparable key,
                        Object value)
        Add the passed key to the tree and associate the passed value with the key. If the key is already in the tree, the passed value will replace the current value stored with the key.
        Parameters:
        key - the key to add to the tree
        value - the object to associate with the key
      • get

        public Object get​(Comparable key)
        Find the specified key and return its value.
        Parameters:
        key - the key to look for in the tree
        Returns:
        the associated value or null if the key is not in the tree
      • contains

        public boolean contains​(Comparable key)
        Determine if the passed key is in the tree.
        Parameters:
        key - the key to look for in the tree
        Returns:
        true if the key is in the tree, false otherwise
      • remove

        public Object remove​(Comparable key)
        Remove the specified key from the tree, returning its associated value.
        Parameters:
        key - the key to look for in the tree
        Returns:
        the associated value (which can be null) or null if the key is not in the tree
      • clear

        public void clear()
        Remove all nodes from the tree.
      • getSize

        public int getSize()
        Determine the size of the tree.
        Returns:
        the number of nodes in the tree
      • isEmpty

        public boolean isEmpty()
        Test for empty tree.
        Returns:
        true if tree has no nodes
      • keys

        public Enumeration keys()
        Create an in-order enumerator for the tree's keys.
        Returns:
        an enumerator of the tree's keys
      • elements

        public Enumeration elements()
        Create an enumerator for the tree's values.
        Returns:
        an enumerator of the tree's values (in the same order that the keys were returned)
      • addAll

        public boolean addAll​(Tree that)
        Adds all of the nodes in the specified Tree to this Tree if they are not already present. This operation effectively modifies this Tree so that its value is the union of the two Trees. The behavior of this operation is unspecified if the specified Tree is modified while the operation is in progress.
        Returns:
        true if this Tree changed as a result of the call.
        See Also:
        Collection.addAll(Collection)
      • putAll

        public void putAll​(Tree that)
        Puts all of the nodes in the specified Tree to this Tree (including the ones that are already present). This operation effectively modifies this Tree so that its value is the union of the two Trees. The behavior of this operation is unspecified if the specified Tree is modified while the operation is in progress.
      • retainAll

        public boolean retainAll​(Tree that)
        Retains only the nodes in this Tree that are contained in the specified Tree. In other words, removes from this Tree all of its nodes that are not contained in the specified Tree. This operation effectively modifies this Tree so that its value is the intersection of the two Trees.
        Returns:
        true if this Collection changed as a result of the call.
        See Also:
        Collection.retainAll(Collection)
      • removeAll

        public boolean removeAll​(Tree that)
        Removes from this Tree all of its nodes that are contained in the specified Tree. This operation effectively modifies this Tree so that its value is the asymmetric set difference of the two Trees.
        Returns:
        true if this Tree changed as a result of the call.
        See Also:
        Collection.removeAll(Collection)
      • toString

        public String toString()
        Provide a string representation of the tree.
        Overrides:
        toString in class Object
      • equals

        public boolean equals​(Object obj)
        Test for tree equality.
        Overrides:
        equals in class Object
      • clone

        public Object clone()
        Make a shallow copy of the tree and its nodes. Note that cloning does make new copies of each node.
        Overrides:
        clone in class Object
      • print

        public void print()
        In-order printing of the contents of the tree.
      • getUnsynchronizedKeyEnumerator

        protected Enumeration getUnsynchronizedKeyEnumerator()
        Get an enumerator of the nodes in the tree. This enumerator is not in any way thread-safe, so the tree should be synchronized for as long as this enumerator is in use. Note: Purposefully package private; used by StringTable
      • getUnsynchronizedKeyEnumerator

        protected Enumeration getUnsynchronizedKeyEnumerator​(Comparable key)
        Get an enumerator of the nodes in the tree. This enumerator is not in any way thread-safe, so the tree should be synchronized for as long as this enumerator is in use. Note: Purposefully package private; used by StringTable