Show / Hide Table of Contents

    Class LRUHashMap<TKey, TValue>

    LRUHashMap<TKey, TValue> is similar to of Java's HashMap, which has a bounded Limit; When it reaches that Limit, each time a new element is added, the least recently used (LRU) entry is removed.

    Unlike the Java Lucene implementation, this one is thread safe because it is backed by the . Do note that every time an element is read from LRUHashMap<TKey, TValue>, a write operation also takes place to update the element's last access time. This is because the LRU order needs to be remembered to determine which element to evict when the Limit is exceeded.

    @lucene.experimental

    Inheritance
    System.Object
    LRUHashMap<TKey, TValue>
    Namespace: Lucene.Net.Facet.Taxonomy
    Assembly: Lucene.Net.Facet.dll
    Syntax
    public class LRUHashMap<TKey, TValue> : IDictionary<TKey, TValue>
    Type Parameters
    Name Description
    TKey
    TValue

    Constructors

    | Improve this Doc View Source

    LRUHashMap(Int32)

    Create a new hash map with a bounded size and with least recently used entries removed.

    Declaration
    public LRUHashMap(int limit)
    Parameters
    Type Name Description
    System.Int32 limit

    The maximum size (in number of entries) to which the map can grow before the least recently used entries start being removed.

    Setting limit to a very large value, like is allowed, but is less efficient than using or because our class needs to keep track of the use order (via an additional doubly-linked list) which is not used when the map's size is always below the maximum size.

    | Improve this Doc View Source

    LRUHashMap(Int32, IEqualityComparer<TKey>)

    Create a new hash map with a bounded size and with least recently used entries removed.

    LUCENENET specific overload to allow passing in custom . See LUCENENET-602.

    Declaration
    public LRUHashMap(int limit, IEqualityComparer<TKey> comparer)
    Parameters
    Type Name Description
    System.Int32 limit

    The maximum size (in number of entries) to which the map can grow before the least recently used entries start being removed.

    Setting limit to a very large value, like is allowed, but is less efficient than using or because our class needs to keep track of the use order (via an additional doubly-linked list) which is not used when the map's size is always below the maximum size.

    IEqualityComparer<TKey> comparer

    The implementation to use when comparing keys, or null to use the default for the type of the key.

    Properties

    | Improve this Doc View Source

    Count

    Declaration
    public int Count { get; }
    Property Value
    Type Description
    System.Int32
    | Improve this Doc View Source

    IsReadOnly

    Declaration
    public bool IsReadOnly { get; }
    Property Value
    Type Description
    System.Boolean
    | Improve this Doc View Source

    Item[TKey]

    Declaration
    public TValue this[TKey key] { get; set; }
    Parameters
    Type Name Description
    TKey key
    Property Value
    Type Description
    TValue
    | Improve this Doc View Source

    Keys

    Declaration
    public ICollection<TKey> Keys { get; }
    Property Value
    Type Description
    ICollection<TKey>
    | Improve this Doc View Source

    Limit

    allows changing the map's maximal number of elements which was defined at construction time.

    Note that if the map is already larger than Limit, the current implementation does not shrink it (by removing the oldest elements); Rather, the map remains in its current size as new elements are added, and will only start shrinking (until settling again on the given Limit) if existing elements are explicitly deleted.

    Declaration
    public virtual int Limit { get; set; }
    Property Value
    Type Description
    System.Int32
    | Improve this Doc View Source

    Values

    Declaration
    public ICollection<TValue> Values { get; }
    Property Value
    Type Description
    ICollection<TValue>

    Methods

    | Improve this Doc View Source

    Add(TKey, TValue)

    Declaration
    public void Add(TKey key, TValue value)
    Parameters
    Type Name Description
    TKey key
    TValue value
    | Improve this Doc View Source

    Add(KeyValuePair<TKey, TValue>)

    Declaration
    public void Add(KeyValuePair<TKey, TValue> item)
    Parameters
    Type Name Description
    KeyValuePair<TKey, TValue> item
    | Improve this Doc View Source

    Clear()

    Declaration
    public void Clear()
    | Improve this Doc View Source

    Contains(KeyValuePair<TKey, TValue>)

    Declaration
    public bool Contains(KeyValuePair<TKey, TValue> item)
    Parameters
    Type Name Description
    KeyValuePair<TKey, TValue> item
    Returns
    Type Description
    System.Boolean
    | Improve this Doc View Source

    ContainsKey(TKey)

    Declaration
    public bool ContainsKey(TKey key)
    Parameters
    Type Name Description
    TKey key
    Returns
    Type Description
    System.Boolean
    | Improve this Doc View Source

    CopyTo(KeyValuePair<TKey, TValue>[], Int32)

    Declaration
    public void CopyTo(KeyValuePair<TKey, TValue>[] array, int arrayIndex)
    Parameters
    Type Name Description
    KeyValuePair<TKey, TValue>[] array
    System.Int32 arrayIndex
    | Improve this Doc View Source

    Get(TKey)

    Declaration
    public TValue Get(TKey key)
    Parameters
    Type Name Description
    TKey key
    Returns
    Type Description
    TValue
    | Improve this Doc View Source

    GetEnumerator()

    Declaration
    public IEnumerator<KeyValuePair<TKey, TValue>> GetEnumerator()
    Returns
    Type Description
    IEnumerator<KeyValuePair<TKey, TValue>>
    | Improve this Doc View Source

    Put(TKey, TValue)

    Declaration
    public TValue Put(TKey key, TValue value)
    Parameters
    Type Name Description
    TKey key
    TValue value
    Returns
    Type Description
    TValue
    | Improve this Doc View Source

    Remove(TKey)

    Declaration
    public bool Remove(TKey key)
    Parameters
    Type Name Description
    TKey key
    Returns
    Type Description
    System.Boolean
    | Improve this Doc View Source

    Remove(KeyValuePair<TKey, TValue>)

    Declaration
    public bool Remove(KeyValuePair<TKey, TValue> item)
    Parameters
    Type Name Description
    KeyValuePair<TKey, TValue> item
    Returns
    Type Description
    System.Boolean
    | Improve this Doc View Source

    TryGetValue(TKey, out TValue)

    Declaration
    public bool TryGetValue(TKey key, out TValue value)
    Parameters
    Type Name Description
    TKey key
    TValue value
    Returns
    Type Description
    System.Boolean
    • Improve this Doc
    • View Source
    Back to top Copyright © 2020 Licensed to the Apache Software Foundation (ASF)