C# Class clojure.lang.PersistentTreeMap

Implements a persistent Red-Black Tree.

>Note that instances of this class are constant values i.e., add/remove etc return new values.See Okasaki, Kahrs, Larsen et al

Inheritance: APersistentMap, Reversible, Sorted
Afficher le fichier Open project: arohner/clojure-contrib Class Usage Examples

Méthodes publiques

Свойство Type Description
EMPTY PersistentTreeMap

Protected Properties

Свойство Type Description
_comp IComparer
_count int

Méthodes publiques

Méthode Description
DoCompare ( object k1, object k2 ) : int

Compare two keys.

GetEnumerator ( ) : IDictionaryEnumerator
PersistentTreeMap ( ) : System

Initialize a PersistentTreeMap using a default comparer.

PersistentTreeMap ( IPersistentMap meta, IComparer comp ) : System

Initialize a PersistentTreeMap using given metadata and comparer.

assoc ( object key, object val ) : IPersistentMap

Add a new key/value pair.

Overwrites an exising value for the key, if present.

assocEx ( object key, object val ) : IPersistentMap

Add a new key/value pair.

Throws an exception if key has a value already.

comparator ( ) : System.Collections.IComparer

Returns the comparer used to sort the elements in the collection.

Would be called Comparer except we need to match the JVM name.

containsKey ( object key ) : bool

Test if the map contains a key.

count ( ) : int

Gets the number of items in the collection.

create ( IDictionary other ) : IPersistentMap

Create a PersistentTreeMap from a dictionary.

create ( IComparer comp, ISeq items ) : PersistentTreeMap

Create a PersistentTreeMap from a comparison method an ISeq of alternating keys and values.

create ( ISeq items ) : PersistentTreeMap

Create a PersistentTreeMap from an ISeq of alternating keys and values.

empty ( ) : IPersistentCollection

Gets an empty collection of the same type.

entryAt ( object key ) : IMapEntry

Returns the key/value pair for this key.

entryKey ( object entry ) : object

Returns the key to be passed to the comparator to sort the element.

rseq ( ) : ISeq

Gets an ISeq to travers the sequence in reverse.

seq ( ) : ISeq

Gets an ISeq to allow first/rest iteration through the collection.

seq ( bool ascending ) : ISeq

Returns an ISeq to iterate through the collection in the designated direction.

seqFrom ( object key, bool ascending ) : ISeq

Returns an ISeq to iterate through the collection in the designated direction starting from a particular key.

The key need not be in the collection. If not present, the iteration will start with the first element with a key greater than (if asscending) or less than (if descending) the given key.

valAt ( object key ) : object

Gets the value associated with a key.

valAt ( object key, object notFound ) : object

Gets the value associated with a key.

withMeta ( IPersistentMap meta ) : IObj

Create a copy with new metadata.

without ( object key ) : IPersistentMap

Remove a key entry.

Private Methods

Méthode Description
Add ( Node t, object key, object val, clojure.lang.Box found ) : Node

Add a node for a key

Append ( Node left, Node right ) : Node
BalanceLeftDel ( object key, object val, Node del, Node right ) : Node
BalanceRightDel ( object key, object val, Node left, Node del ) : Node
LeftBalance ( object key, object val, Node ins, Node right ) : Node
MakeBlack ( object key, object val, Node left, Node right ) : Black
MakeRed ( object key, object val, Node left, Node right ) : Red
NodeAt ( object key ) : Node

Get the Node containing a key, or null if key not in tree.

PersistentTreeMap ( IComparer comp ) : System

Initialize a PersistentTreeMap using a given comparer.

PersistentTreeMap ( IComparer comp, Node tree, int count, IPersistentMap meta ) : System

Initialize a PersistentTreeMap using given internal data. (Internal use only.)

PersistentTreeMap ( IPersistentMap meta, IComparer comp, Node tree, int count ) : System
Remove ( Node t, object key, clojure.lang.Box found ) : Node
Replace ( Node t, object key, object val ) : Node
RightBalance ( object key, object val, Node left, Node ins ) : Node

Method Details

DoCompare() public méthode

Compare two keys.
public DoCompare ( object k1, object k2 ) : int
k1 object The first key.
k2 object The second key.
Résultat int

GetEnumerator() public méthode

public GetEnumerator ( ) : IDictionaryEnumerator
Résultat IDictionaryEnumerator

PersistentTreeMap() public méthode

Initialize a PersistentTreeMap using a default comparer.
public PersistentTreeMap ( ) : System
Résultat System

PersistentTreeMap() public méthode

Initialize a PersistentTreeMap using given metadata and comparer.
public PersistentTreeMap ( IPersistentMap meta, IComparer comp ) : System
meta IPersistentMap
comp IComparer
Résultat System

assoc() public méthode

Add a new key/value pair.
Overwrites an exising value for the key, if present.
public assoc ( object key, object val ) : IPersistentMap
key object The key
val object The value
Résultat IPersistentMap

assocEx() public méthode

Add a new key/value pair.
Throws an exception if key has a value already.
public assocEx ( object key, object val ) : IPersistentMap
key object The key
val object The value
Résultat IPersistentMap

comparator() public méthode

Returns the comparer used to sort the elements in the collection.
Would be called Comparer except we need to match the JVM name.
public comparator ( ) : System.Collections.IComparer
Résultat System.Collections.IComparer

containsKey() public méthode

Test if the map contains a key.
public containsKey ( object key ) : bool
key object The key to test for membership
Résultat bool

count() public méthode

Gets the number of items in the collection.
public count ( ) : int
Résultat int

create() public static méthode

Create a PersistentTreeMap from a dictionary.
public static create ( IDictionary other ) : IPersistentMap
other IDictionary The dictionary to initialize from.
Résultat IPersistentMap

create() public static méthode

Create a PersistentTreeMap from a comparison method an ISeq of alternating keys and values.
public static create ( IComparer comp, ISeq items ) : PersistentTreeMap
comp IComparer A comparison method.
items ISeq The ISeq of alternating keys and values.
Résultat PersistentTreeMap

create() public static méthode

Create a PersistentTreeMap from an ISeq of alternating keys and values.
public static create ( ISeq items ) : PersistentTreeMap
items ISeq The ISeq of alternating keys and values.
Résultat PersistentTreeMap

empty() public méthode

Gets an empty collection of the same type.
public empty ( ) : IPersistentCollection
Résultat IPersistentCollection

entryAt() public méthode

Returns the key/value pair for this key.
public entryAt ( object key ) : IMapEntry
key object The key to retrieve
Résultat IMapEntry

entryKey() public méthode

Returns the key to be passed to the comparator to sort the element.
public entryKey ( object entry ) : object
entry object An element in the collection.
Résultat object

rseq() public méthode

Gets an ISeq to travers the sequence in reverse.
public rseq ( ) : ISeq
Résultat ISeq

seq() public méthode

Gets an ISeq to allow first/rest iteration through the collection.
public seq ( ) : ISeq
Résultat ISeq

seq() public méthode

Returns an ISeq to iterate through the collection in the designated direction.
public seq ( bool ascending ) : ISeq
ascending bool A flag indicating if the iteration is ascending or descending.
Résultat ISeq

seqFrom() public méthode

Returns an ISeq to iterate through the collection in the designated direction starting from a particular key.
The key need not be in the collection. If not present, the iteration will start with the first element with a key greater than (if asscending) or less than (if descending) the given key.
public seqFrom ( object key, bool ascending ) : ISeq
key object The key at which to start the iteration.
ascending bool A flag indicating if the iteration is ascending or descending.
Résultat ISeq

valAt() public méthode

Gets the value associated with a key.
public valAt ( object key ) : object
key object The key to look up.
Résultat object

valAt() public méthode

Gets the value associated with a key.
public valAt ( object key, object notFound ) : object
key object The key to look up.
notFound object The value to return if the key is not present.
Résultat object

withMeta() public méthode

Create a copy with new metadata.
public withMeta ( IPersistentMap meta ) : IObj
meta IPersistentMap The new metadata.
Résultat IObj

without() public méthode

Remove a key entry.
public without ( object key ) : IPersistentMap
key object The key to remove
Résultat IPersistentMap

Property Details

EMPTY public_oe static_oe property

An empty PersistentTreeMap.
public static PersistentTreeMap,clojure.lang EMPTY
Résultat PersistentTreeMap

_comp protected_oe property

The method used to compare elements for sorting.
protected IComparer _comp
Résultat IComparer

_count protected_oe property

Number of items in the tree.
protected int _count
Résultat int