C# 클래스 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

상속: APersistentMap, Reversible, Sorted
파일 보기 프로젝트 열기: arohner/clojure-contrib 1 사용 예제들

공개 프로퍼티들

프로퍼티 타입 설명
EMPTY PersistentTreeMap

보호된 프로퍼티들

프로퍼티 타입 설명
_comp IComparer
_count int

공개 메소드들

메소드 설명
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.

비공개 메소드들

메소드 설명
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

메소드 상세

DoCompare() 공개 메소드

Compare two keys.
public DoCompare ( object k1, object k2 ) : int
k1 object The first key.
k2 object The second key.
리턴 int

GetEnumerator() 공개 메소드

public GetEnumerator ( ) : IDictionaryEnumerator
리턴 IDictionaryEnumerator

PersistentTreeMap() 공개 메소드

Initialize a PersistentTreeMap using a default comparer.
public PersistentTreeMap ( ) : System
리턴 System

PersistentTreeMap() 공개 메소드

Initialize a PersistentTreeMap using given metadata and comparer.
public PersistentTreeMap ( IPersistentMap meta, IComparer comp ) : System
meta IPersistentMap
comp IComparer
리턴 System

assoc() 공개 메소드

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
리턴 IPersistentMap

assocEx() 공개 메소드

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
리턴 IPersistentMap

comparator() 공개 메소드

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
리턴 System.Collections.IComparer

containsKey() 공개 메소드

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

count() 공개 메소드

Gets the number of items in the collection.
public count ( ) : int
리턴 int

create() 공개 정적인 메소드

Create a PersistentTreeMap from a dictionary.
public static create ( IDictionary other ) : IPersistentMap
other IDictionary The dictionary to initialize from.
리턴 IPersistentMap

create() 공개 정적인 메소드

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.
리턴 PersistentTreeMap

create() 공개 정적인 메소드

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.
리턴 PersistentTreeMap

empty() 공개 메소드

Gets an empty collection of the same type.
public empty ( ) : IPersistentCollection
리턴 IPersistentCollection

entryAt() 공개 메소드

Returns the key/value pair for this key.
public entryAt ( object key ) : IMapEntry
key object The key to retrieve
리턴 IMapEntry

entryKey() 공개 메소드

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.
리턴 object

rseq() 공개 메소드

Gets an ISeq to travers the sequence in reverse.
public rseq ( ) : ISeq
리턴 ISeq

seq() 공개 메소드

Gets an ISeq to allow first/rest iteration through the collection.
public seq ( ) : ISeq
리턴 ISeq

seq() 공개 메소드

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.
리턴 ISeq

seqFrom() 공개 메소드

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.
리턴 ISeq

valAt() 공개 메소드

Gets the value associated with a key.
public valAt ( object key ) : object
key object The key to look up.
리턴 object

valAt() 공개 메소드

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.
리턴 object

withMeta() 공개 메소드

Create a copy with new metadata.
public withMeta ( IPersistentMap meta ) : IObj
meta IPersistentMap The new metadata.
리턴 IObj

without() 공개 메소드

Remove a key entry.
public without ( object key ) : IPersistentMap
key object The key to remove
리턴 IPersistentMap

프로퍼티 상세

EMPTY 공개적으로 정적으로 프로퍼티

An empty PersistentTreeMap.
public static PersistentTreeMap,clojure.lang EMPTY
리턴 PersistentTreeMap

_comp 보호되어 있는 프로퍼티

The method used to compare elements for sorting.
protected IComparer _comp
리턴 IComparer

_count 보호되어 있는 프로퍼티

Number of items in the tree.
protected int _count
리턴 int