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:
  • Field Details

    • m_tree

      protected TreeMap m_tree
      The delgate tree.
  • Constructor Details

    • Tree

      public Tree()
      Default constructor.
  • Method Details

    • 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:
    • 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:
    • 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:
    • 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