@SuppressWarnings ("unchecked")
    public ABTreeMap<K,V> updated (K key, V value) {
        final UpdateResult result = _updated (key, value);

        if (result.optRight == null) {
            return result.left;
        }

        // This is the only place where the tree depth can grow.
        // The 'minimum number of children' constraint does not apply to root nodes.
        return new IndexNode (spec, new Object[] {result.separator}, new ABTreeMap[] {result.left, result.optRight});
    }
@SuppressWarnings ("unchecked")
    public ABTreeMap<K,V> updated (K key, V value) {
        final UpdateResult result = _updated (key, value);

        if (result.optRight == null) {
            return result.left;
        }

        
        
        return new IndexNode (spec, new Object[] {result.separator}, new ABTreeMap[] {result.left, result.optRight});
    }
@ SuppressWarnings ( "unchecked" ) public ABTreeMap < K , V > updated ( K key , V value ) { final UpdateResult result = _updated ( key , value ) ; if ( result . optRight == null ) { return result . left ; } // This is the only place where the tree depth can grow. // The 'minimum number of children' constraint does not apply to root nodes. return new IndexNode ( spec , new Object [ ] { result . separator } , new ABTreeMap [ ] { result . left , result . optRight } ) ; }
public Iterable<V> values (K keyMin, K keyMax);
public Iterable<V > values ( K keyMin K keyMax ) ;