Class HashMap<TKey, TValue>
  
  A C# emulation of the Java Hashmap
A System.Collections.Generic.Dictionary`2 is a close equivalent to the Java
Hashmap.  One difference java implementation of the class is that
the Hashmap supports both null keys and values, where the C# Dictionary
only supports null values not keys.  Also, V Get(TKey)
method in Java returns null if the key doesn't exist, instead of throwing
an exception.  This implementation doesn't throw an exception when a key
doesn't exist, it will return null.  This class is slower than using a
System.Collections.Generic.Dictionary`2, because of extra checks that have to be
done on each access, to check for null.
NOTE: This class works best with nullable types.  default(T) is returned
when a key doesn't exist in the collection (this being similar to how Java returns
null).  Therefore, if the expected behavior of the java code is to execute code
based on if the key exists, when the key is an integer type, it will return 0 instead of null.
Consider also implementing IDictionary, IEnumerable, and ICollection
like System.Collections.Generic.Dictionary`2 does, so HashMap can be
used in substituted in place for the same interfaces it implements.
 
  
  
    Inheritance
    System.Object
    HashMap<TKey, TValue>
      
      
   
  
    Implements
    System.Collections.Generic.IDictionary<TKey, TValue>
    System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey, TValue>>
    System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey, TValue>>
    System.Collections.IEnumerable
   
  
    Inherited Members
    
      System.Object.Equals(System.Object, System.Object)
    
    
      System.Object.GetType()
    
    
      System.Object.MemberwiseClone()
    
    
      System.Object.ReferenceEquals(System.Object, System.Object)
    
   
  
  Assembly: Lucene.Net.dll
  Syntax
  
    public class HashMap<TKey, TValue> : IDictionary<TKey, TValue>, ICollection<KeyValuePair<TKey, TValue>>, IEnumerable<KeyValuePair<TKey, TValue>>, IEnumerable
   
  Type Parameters
  
    
      
        | Name | 
        Description | 
      
    
    
      
        | TKey | 
        The type of keys in the dictionary 
 | 
      
      
        | TValue | 
        The type of values in the dictionary 
 | 
      
    
  
  
  
  Constructors
  
  
    |
    Improve this Doc
  
  
    View Source
  
  
  HashMap()
  
  
  Declaration
  
  
    |
    Improve this Doc
  
  
    View Source
  
  
  HashMap(IEnumerable<KeyValuePair<TKey, TValue>>)
  
  
  Declaration
  
    public HashMap(IEnumerable<KeyValuePair<TKey, TValue>> other)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey, TValue>> | 
        other | 
         | 
      
    
  
  
    |
    Improve this Doc
  
  
    View Source
  
  
  HashMap(IEqualityComparer<TKey>)
  
  
  Declaration
  
    public HashMap(IEqualityComparer<TKey> comparer)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | System.Collections.Generic.IEqualityComparer<TKey> | 
        comparer | 
         | 
      
    
  
  
    |
    Improve this Doc
  
  
    View Source
  
  
  HashMap(Int32)
  
  
  Declaration
  
    public HashMap(int initialCapacity)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | System.Int32 | 
        initialCapacity | 
         | 
      
    
  
  
    |
    Improve this Doc
  
  
    View Source
  
  
  HashMap(Int32, IEqualityComparer<TKey>)
  
  
  Declaration
  
    public HashMap(int initialCapacity, IEqualityComparer<TKey> comparer)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | System.Int32 | 
        initialCapacity | 
         | 
      
      
        | System.Collections.Generic.IEqualityComparer<TKey> | 
        comparer | 
         | 
      
    
  
  Properties
  
  
    |
    Improve this Doc
  
  
    View Source
  
  
  Count
  
  
  Declaration
  
    public virtual int Count { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Int32 | 
         | 
      
    
  
  
    |
    Improve this Doc
  
  
    View Source
  
  
  IsReadOnly
  
  
  Declaration
  
    public virtual bool IsReadOnly { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Boolean | 
         | 
      
    
  
  
    |
    Improve this Doc
  
  
    View Source
  
  
  Item[TKey]
  
  
  Declaration
  
    public virtual TValue this[TKey key] { get; set; }
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | TKey | 
        key | 
         | 
      
    
  
  Property Value
  
  
    |
    Improve this Doc
  
  
    View Source
  
  
  Keys
  
  
  Declaration
  
    public virtual ICollection<TKey> Keys { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Collections.Generic.ICollection<TKey> | 
         | 
      
    
  
  
    |
    Improve this Doc
  
  
    View Source
  
  
  Values
  
  
  Declaration
  
    public virtual ICollection<TValue> Values { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Collections.Generic.ICollection<TValue> | 
         | 
      
    
  
  Methods
  
  
    |
    Improve this Doc
  
  
    View Source
  
  
  Add(TKey, TValue)
  
  
  Declaration
  
    public virtual 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 virtual void Add(KeyValuePair<TKey, TValue> item)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | System.Collections.Generic.KeyValuePair<TKey, TValue> | 
        item | 
         | 
      
    
  
  
    |
    Improve this Doc
  
  
    View Source
  
  
  AddIfAbsent(TKey, TValue)
  
  
  Declaration
  
    public TValue AddIfAbsent(TKey key, TValue value)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | TKey | 
        key | 
         | 
      
      
        | TValue | 
        value | 
         | 
      
    
  
  Returns
  
  
    |
    Improve this Doc
  
  
    View Source
  
  
  Clear()
  
  
  Declaration
  
    public virtual void Clear()
   
  
    |
    Improve this Doc
  
  
    View Source
  
  
  Contains(KeyValuePair<TKey, TValue>)
  
  
  Declaration
  
    public virtual bool Contains(KeyValuePair<TKey, TValue> item)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | System.Collections.Generic.KeyValuePair<TKey, TValue> | 
        item | 
         | 
      
    
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Boolean | 
         | 
      
    
  
  
    |
    Improve this Doc
  
  
    View Source
  
  
  ContainsKey(TKey)
  
  
  Declaration
  
    public virtual bool ContainsKey(TKey key)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | TKey | 
        key | 
         | 
      
    
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Boolean | 
         | 
      
    
  
  
    |
    Improve this Doc
  
  
    View Source
  
  
  ContainsValue(TValue)
  
  
  Declaration
  
    public bool ContainsValue(TValue value)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | TValue | 
        value | 
         | 
      
    
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Boolean | 
         | 
      
    
  
  
    |
    Improve this Doc
  
  
    View Source
  
  
  CopyTo(KeyValuePair<TKey, TValue>[], Int32)
  
  
  Declaration
  
    public virtual void CopyTo(KeyValuePair<TKey, TValue>[] array, int arrayIndex)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | System.Collections.Generic.KeyValuePair<TKey, TValue>[] | 
        array | 
         | 
      
      
        | System.Int32 | 
        arrayIndex | 
         | 
      
    
  
  
    |
    Improve this Doc
  
  
    View Source
  
  
  Equals(Object)
  
  
  Declaration
  
    public override bool Equals(object obj)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | System.Object | 
        obj | 
         | 
      
    
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Boolean | 
         | 
      
    
  
  Overrides
  System.Object.Equals(System.Object)
  
    |
    Improve this Doc
  
  
    View Source
  
  
  GetEnumerator()
  
  
  Declaration
  
    public virtual IEnumerator<KeyValuePair<TKey, TValue>> GetEnumerator()
   
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<TKey, TValue>> | 
         | 
      
    
  
  
    |
    Improve this Doc
  
  
    View Source
  
  
  GetHashCode()
  
  
  Declaration
  
    public override int GetHashCode()
   
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Int32 | 
         | 
      
    
  
  Overrides
  System.Object.GetHashCode()
  
    |
    Improve this Doc
  
  
    View Source
  
  
  Remove(TKey)
  
  
  Declaration
  
    public virtual 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 virtual bool Remove(KeyValuePair<TKey, TValue> item)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | System.Collections.Generic.KeyValuePair<TKey, TValue> | 
        item | 
         | 
      
    
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Boolean | 
         | 
      
    
  
  
    |
    Improve this Doc
  
  
    View Source
  
  
  ToString()
  
  
  Declaration
  
    public override string ToString()
   
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.String | 
         | 
      
    
  
  Overrides
  System.Object.ToString()
  
    |
    Improve this Doc
  
  
    View Source
  
  
  TryGetValue(TKey, out TValue)
  
  
  Declaration
  
    public virtual bool TryGetValue(TKey key, out TValue value)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | TKey | 
        key | 
         | 
      
      
        | TValue | 
        value | 
         | 
      
    
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Boolean | 
         | 
      
    
  
  Explicit Interface Implementations
  
  
    |
    Improve this Doc
  
  
    View Source
  
  
  IEnumerable.GetEnumerator()
  
  
  Declaration
  
    IEnumerator IEnumerable.GetEnumerator()
   
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Collections.IEnumerator | 
         | 
      
    
  
  Implements
  
      System.Collections.Generic.IDictionary<TKey, TValue>
  
  
      System.Collections.Generic.ICollection<T>
  
  
      System.Collections.Generic.IEnumerable<T>
  
  
      System.Collections.IEnumerable
  
  Extension Methods