Пример #1
0
 public CacheItem<K, V> deleteTail() {
   if (head.next == null) return null;
   CacheItem<K, V> ret = tail;
   tail = tail.prev;
   tail.next = null;
   ret.prev = null;
   ret.next = null;
   return ret;
 }
Пример #2
0
 public CacheItem<K, V> deleteHead() {
   if (head.next == null) return null;
   if (head.next == tail) {
     tail = tail.prev;
   }
   CacheItem<K, V> ret = head.next;
   head.next = ret.next;
   if (ret.next != null) {
     ret.next.prev = head;
   }
   ret.next = null;
   ret.prev = null;
   return ret;
 }
Пример #3
0
 public void delete(CacheItem<K, V> node) {
   if (head.next == null) return;
   if (node == head.next) {
     deleteHead();
   } else if (node == tail) {
     deleteTail();
   } else {
     node.prev.next = node.next;
     node.next.prev = node.prev;
     node.next = null;
     node.prev = null;
   }
 }
Пример #4
0
 public void insertTail(CacheItem<K, V> node) {
   tail.next = node;
   node.prev = tail;
   node.next = null;
   tail = node;
 }