Пример #1
0
 internal virtual Node <K, V> ReplacementNode(Node <K, V> p, Node <K, V> next)
 {
     LinkedHashMap.Entry <K, V> q = (LinkedHashMap.Entry <K, V>)p;
     LinkedHashMap.Entry <K, V> t = new LinkedHashMap.Entry <K, V>(q.Hash, q.Key_Renamed, q.Value_Renamed, next);
     TransferLinks(q, t);
     return(t);
 }
Пример #2
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: void internalWriteEntries(java.io.ObjectOutputStream s) throws java.io.IOException
        internal virtual void InternalWriteEntries(java.io.ObjectOutputStream s)
        {
            for (LinkedHashMap.Entry <K, V> e = Head; e != Map_Fields.Null; e = e.After)
            {
                s.WriteObject(e.Key_Renamed);
                s.WriteObject(e.Value_Renamed);
            }
        }
Пример #3
0
        // internal utilities

        // link at the end of list
        private void LinkNodeLast(LinkedHashMap.Entry <K, V> p)
        {
            LinkedHashMap.Entry <K, V> last = Tail;
            Tail = p;
            if (last == Map_Fields.Null)
            {
                Head = p;
            }
            else
            {
                p.Before   = last;
                last.After = p;
            }
        }
Пример #4
0
 internal virtual void AfterNodeRemoval(Node <K, V> e)        // unlink
 {
     LinkedHashMap.Entry <K, V> p = (LinkedHashMap.Entry <K, V>)e, b = p.Before, a = p.After;
     p.Before = p.After = Map_Fields.Null;
     if (b == Map_Fields.Null)
     {
         Head = a;
     }
     else
     {
         b.After = a;
     }
     if (a == Map_Fields.Null)
     {
         Tail = b;
     }
     else
     {
         a.Before = b;
     }
 }
Пример #5
0
 // apply src's links to dst
 private void TransferLinks(LinkedHashMap.Entry <K, V> src, LinkedHashMap.Entry <K, V> dst)
 {
     LinkedHashMap.Entry <K, V> b = dst.Before = src.Before;
     LinkedHashMap.Entry <K, V> a = dst.After = src.After;
     if (b == Map_Fields.Null)
     {
         Head = dst;
     }
     else
     {
         b.After = dst;
     }
     if (a == Map_Fields.Null)
     {
         Tail = dst;
     }
     else
     {
         a.Before = dst;
     }
 }
Пример #6
0
 internal virtual void AfterNodeAccess(Node <K, V> e)        // move node to last
 {
     LinkedHashMap.Entry <K, V> last;
     if (AccessOrder && (last = Tail) != e)
     {
         LinkedHashMap.Entry <K, V> p = (LinkedHashMap.Entry <K, V>)e, b = p.Before, a = p.After;
         p.After = Map_Fields.Null;
         if (b == Map_Fields.Null)
         {
             Head = a;
         }
         else
         {
             b.After = a;
         }
         if (a != Map_Fields.Null)
         {
             a.Before = b;
         }
         else
         {
             last = b;
         }
         if (last == Map_Fields.Null)
         {
             Head = p;
         }
         else
         {
             p.Before   = last;
             last.After = p;
         }
         Tail = p;
         ++ModCount;
     }
 }
Пример #7
0
 internal virtual Node <K, V> NewNode(int hash, K key, V value, Node <K, V> e)
 {
     LinkedHashMap.Entry <K, V> p = new LinkedHashMap.Entry <K, V>(hash, key, value, e);
     LinkNodeLast(p);
     return(p);
 }
Пример #8
0
        // overrides of HashMap hook methods

        internal virtual void Reinitialize()
        {
            base.Reinitialize();
            Head = Tail = Map_Fields.Null;
        }