/** Inserts this entry before the specified existing entry in the list. */
 private void addBefore(Entry<K, V> existingEntry) {
   after = existingEntry;
   before = existingEntry.before;
   before.after = this;
   after.before = this;
 }
 /** Removes all of the mappings from this map. The map will be empty after this call returns. */
 public void clear() {
   super.clear();
   header.before = header.after = header;
 }
 /** Removes this entry from the linked list. */
 private void remove() {
   before.after = after;
   after.before = before;
 }
 /**
  * Called by superclass constructors and pseudoconstructors (clone, readObject) before any entries
  * are inserted into the map. Initializes the chain.
  */
 void init() {
   header = new Entry<>(-1, null, null, null, keyEquality);
   header.before = header.after = header;
 }