# Class SortedHashTree

java.lang.Object
org.apache.jorphan.collections.HashTree
org.apache.jorphan.collections.SortedHashTree

All Implemented Interfaces:
  `Serializable, Cloneable, Map<Object,HashTree>`

public class SortedHashTree extends HashTree implements Serializable
SortedHashTree is a different implementation of the `HashTree` collection class. In the SortedHashTree, the ordering of values in the tree is made explicit via the compare() function of objects added to the tree. This works in exactly the same fashion as it does for a SortedSet.

See Also:
  - `HashTree`
  - TODO does not appear to be used currently
  - Serialized Form

## Nested Class Summary

### Nested classes/interfaces inherited from interface Map

`Map.Entry<K,V>`

## Field Summary

### Fields inherited from class HashTree

`data`

## Constructor Summary

Constructors
Constructor
Description
`SortedHashTree()`
`SortedHashTree(Object key)`
`SortedHashTree(Object[] keys)`
`SortedHashTree(Object[] keys, Comparator<? super Object> comper)`
`SortedHashTree(Object key, Comparator<? super Object> comper)`
`SortedHashTree(Collection<?> keys)`
`SortedHashTree(Collection<?> keys, Comparator<? super Object> comper)`
`SortedHashTree(Comparator<? super Object> comper)`

## Method Summary

Modifier and Type
Method
Description
`protected HashTree`
`createNewTree()`
Creates a new tree.
`protected HashTree`
`createNewTree(Object key)`
Creates a new tree.
`protected HashTree`
`createNewTree(Collection<?> values)`
Creates a new tree.

### Methods inherited from class HashTree

`add, add, add, add, add, add, add, add, add, add, add, add, add, add, addTreePath, clear, clone, cloneTree, containsKey, containsValue, entrySet, equals, get, getArray, getArray, getArray, getArray, getTree, getTree, getTree, getTreePath, hashCode, isEmpty, keySet, list, list, list, list, put, putAll, remove, replaceKey, search, set, set, set, set, set, set, set, set, set, size, toString, traverse, values`

### Methods inherited from class Object

`finalize, getClass, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface Map

`compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll`

## Constructor Details

### SortedHashTree

public SortedHashTree()

### SortedHashTree

public SortedHashTree(Comparator<? super Object> comper)

### SortedHashTree

public SortedHashTree(Object key)

### SortedHashTree

public SortedHashTree(Object key, Comparator<? super Object> comper)

### SortedHashTree

public SortedHashTree(Collection<?> keys)

### SortedHashTree

public SortedHashTree(Collection<?> keys, Comparator<? super Object> comper)

### SortedHashTree

public SortedHashTree(Object[] keys)

### SortedHashTree

public SortedHashTree(Object[] keys, Comparator<? super Object> comper)

## Method Details

### createNewTree

protected HashTree createNewTree()
Creates a new tree. This method exists to allow inheriting classes to generate the appropriate types of nodes. For instance, when a node is added, it's value is a HashTree. Rather than directly calling the HashTree() constructor, the createNewTree() method is called. Inheriting classes should override these methods and create the appropriate subclass of HashTree.

Overrides:
  `createNewTree` in class `HashTree`
Returns:
  HashTree

### createNewTree

protected HashTree createNewTree(Object key)
Creates a new tree. This method exists to allow inheriting classes to generate the appropriate types of nodes. For instance, when a node is added, it's value is a HashTree. Rather than directly calling the HashTree() constructor, the createNewTree() method is called. Inheriting classes should override these methods and create the appropriate subclass of HashTree.

Overrides:
  `createNewTree` in class `HashTree`
Parameters:
  `key` - object to use as the key for the top level
Returns:
  newly created `HashTree`

### createNewTree

protected HashTree createNewTree(Collection<?> values)
Creates a new tree. This method exists to allow inheriting classes to generate the appropriate types of nodes. For instance, when a node is added, it's value is a HashTree. Rather than directly calling the HashTree() constructor, the createNewTree() method is called. Inheriting classes should override these methods and create the appropriate subclass of HashTree.

Overrides:
  `createNewTree` in class `HashTree`
Parameters:
  `values` - objects to be added to the new `HashTree`
Returns:
  newly created `HashTree`