/**
  * Returns a <code>Collection</code> that contains a copy of all cache entries.
  *
  * @return a <code>Collection</code> with a copy of the cache content.
  */
 public synchronized Collection<Map.Entry<K, V>> getAll() {
   return new ArrayList<Map.Entry<K, V>>(map.entrySet());
 }
 /**
  * Returns the number of used entries in the cache.
  *
  * @return the number of entries currently in the cache.
  */
 public synchronized int usedEntries() {
   return map.size();
 }
 /**
  * Adds an entry to this cache. The new entry becomes the MRU (most recently used) entry. If an
  * entry with the specified key already exists in the cache, it is replaced by the new entry. If
  * the cache is full, the LRU (least recently used) entry is removed from the cache.
  *
  * @param key the key with which the specified value is to be associated.
  * @param value a value to be associated with the specified key.
  */
 public synchronized void put(K key, V value) {
   map.put(key, value);
 }
 /** Clears the cache. */
 public synchronized void clear() {
   map.clear();
 }
 /**
  * Retrieves an entry from the cache.<br>
  * The retrieved entry becomes the MRU (most recently used) entry.
  *
  * @param key the key whose associated value is to be returned.
  * @return the value associated to this key, or null if no value with this key exists in the
  *     cache.
  */
 public synchronized V get(K key) {
   return map.get(key);
 }