public virtual void remove()
 {
     if (last == null)
     {
         throw new java.lang.IllegalStateException();
     }
     root.remove(last.getKey());
     last = null;
 }
            public override bool remove(Object o)
            {
                int hash = root.getHash(o);

                lock (root.m_locks[hash])
                {
                    for (Node n = root.m_buckets[hash]; n != null; n = n.next)
                    {
                        Object k = n.getKey();
                        if ((k == o) || ((k != null) && k.equals(o)))
                        {
                            root.remove(k);
                            return(true);
                        }
                    }
                }
                return(false);
            }
            public override bool remove(Object obj)
            {
                if (obj is java.util.MapNS.Entry <Object, Object> == false)
                {
                    return(false);
                }
                java.util.MapNS.Entry <Object, Object> entry = (java.util.MapNS.Entry <Object, Object>)obj;
                int hash = root.getHash(entry.getKey());

                lock (root.m_locks[hash])
                {
                    for (Node n = root.m_buckets[hash]; n != null; n = n.next)
                    {
                        if (n.equals(entry))
                        {
                            root.remove(n.getKey());
                            return(true);
                        }
                    }
                }
                return(false);
            }