# class BalancedTree<K, V>

#### package haxe.ds

#### extended by EnumValueMap

Available on all platforms

BalancedTree allows key-value mapping with arbitrary keys, as long as they can be ordered. By default, `Reflect.compare` is used in the `compare` method, which can be overridden in subclasses.

Operations have a logarithmic average and worst-case cost.

Iteration over keys and values, using `keys` and `iterator` respectively, are in-order.

### Constructor

###

`new ()`

Creates a new BalancedTree, which is initially empty.

### Methods

###

`exists (key:K):Bool`

Tells if `key` is bound to a value.

This method returns true even if `key` is bound to null.

If `key` is null, the result is unspecified.

###

`get (key:K):Null<V>`

Returns the value `key` is bound to.

If `key` is not bound to any value, `null` is returned.

If `key` is null, the result is unspecified.

###

`iterator ():Iterator<V>`

Iterates over the bound values of `this` BalancedTree.

This operation is performed in-order.

###

`keys ():Iterator<K>`

Iterates over the keys of `this` BalancedTree.

This operation is performed in-order.

###

`remove (key:K):Bool`

Removes the current binding of `key`.

If `key` has no binding, `this` BalancedTree is unchanged and false is returned.

Otherwise the binding of `key` is removed and true is returned.

If `key` is null, the result is unspecified.

###

`set (key:K, value:V):Void`

Binds `key` to `value`.

If `key` is already bound to a value, that binding disappears.

If `key` is null, the result is unspecified.