* TreeBins use a special form of comparison for search and
* related operations (which is the main reason we cannot use
* existing collections such as TreeMaps). TreeBins contain
* Comparable elements, but may contain others, as well as
* elements that are Comparable but not necessarily Comparable<T>
* for the same T, so we cannot invoke compareTo among them. To
* handle this, the tree is ordered primarily by hash value, then
* by getClass().getName() order, and then by Comparator order
* among elements of the same class. On lookup at a node, if
* non-Comparable, both left and right children may need to be
* searched in the case of tied hash values. (This corresponds to
* the full list search that would be necessary if all elements
* were non-Comparable and had tied hashes.)
Comments
From the implementation: