C# Класс clojure.lang.PersistentHashMap

A persistent rendition of Phil Bagwell's Hash Array Mapped Trie

Uses path copying for persistence.

HashCollision leaves vs extended hashing

Node polymorphism vs conditionals

No sub-tree pools or root-resizing

Any errors are Rich Hickey's (so he says), except those that I introduced.

Наследование: APersistentMap, IEditableCollection
Показать файл Открыть проект Примеры использования класса

Открытые методы

Метод Описание
asTransient ( ) : ITransientCollection
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.

containsKey ( object key ) : bool

Test if the map contains a key.

count ( ) : int

Gets the number of items in the collection.

empty ( ) : IPersistentCollection

Gets an empty collection of the same type.

entryAt ( object key ) : IMapEntry

Returns the key/value pair for this key.

meta ( ) : IPersistentMap
seq ( ) : ISeq

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

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.

Приватные методы

Метод Описание
Bitpos ( int hash, int shift ) : int
CloneAndSet ( INode array, int i, INode a ) : INode[]
CloneAndSet ( object array, int i, object a ) : object[]
CloneAndSet ( object array, int i, object a, int j, object b ) : object[]
CreateNode ( AtomicReference edit, int shift, Object key1, Object val1, int key2hash, Object key2, Object val2 ) : INode
CreateNode ( int shift, object key1, object val1, int key2hash, object key2, object val2 ) : INode
Hash ( object k ) : int
PersistentHashMap ( IPersistentMap meta, int count, INode root, bool hasNull, object nullValue ) : System

Initialize a PersistentHashMap with given metadata, count and root node.

PersistentHashMap ( int count, INode root, bool hasNull, object nullValue ) : System

Initialize a PersistentHashMap with a given count and root node.

RemovePair ( object array, int i ) : object[]
create ( IDictionary other ) : IPersistentMap
create ( ) : PersistentHashMap
create ( IPersistentMap meta ) : PersistentHashMap
create ( ISeq items ) : PersistentHashMap
create1 ( IList init ) : PersistentHashMap
createWithCheck ( ) : PersistentHashMap
createWithCheck ( ISeq items ) : PersistentHashMap

Описание методов

asTransient() публичный Метод

public asTransient ( ) : ITransientCollection
Результат ITransientCollection

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

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

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

meta() публичный Метод

public meta ( ) : IPersistentMap
Результат IPersistentMap

seq() публичный Метод

Gets an ISeq to allow first/rest iteration through the collection.
public seq ( ) : ISeq
Результат 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