code: @Override
      public synchronized Object get(final Object key) {
          final Object value = remove(key);
          if (value != null) put(key, value);
          return value;
      }
docs: Makes sure the retrieved object is moved to the head of the LRU list