Esempio n. 1
0
        /// <inheritdoc />
        public bool Remove(KeyValuePair <TKey, TValue> item)
        {
            int hash = Math.Abs(item.Key.GetHashCode()) % _size;

            if (HashMap[hash] is KeyValuePair <TKey, TValue> )
            {
                if (((KeyValuePair <TKey, TValue>)HashMap[hash]).Key.Equals(item.Key) && ((KeyValuePair <TKey, TValue>)HashMap[hash]).Value.Equals(item.Value))
                {
                    HashMap[hash] = null;
                    _elementCount--;
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else if (HashMap[hash] is AVLNode)
            {
                AVLNode node = (AVLNode)HashMap[hash];

                return(AVLNode.FindRemoveItem(node, HashMap, hash, item, ref _elementCount));
            }

            return(false); // Redundant
        }
        /// <inheritdoc />
        public bool Remove(KeyValuePair <TKey, TValue> item)
        {
            if (head == null)
            {
                return(false);
            }

            return(AVLNode.FindRemoveItem(head, this, item, ref count));
        }