int () { // We can't use myChildren.hashCode() because it iterates whole subtree. This should not produce many collisions because 'getData()' // usually refers to different objects return 31 * key.hashCode() + getData().hashCode(); }