| career | drupal | java | mac | mysql | perl | scala | uml | unix  

Groovy example source code file (

This example Groovy source code file ( is included in the "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Java - Groovy tags/keywords

lrucache, lrucache, lruprotectionstorage, lruprotectionstorage, map, memoizecache, object, object, softreference, softreference, util

The Groovy source code

package org.codehaus.groovy.runtime.memoize;

import java.lang.ref.SoftReference;
import java.util.Collections;
import java.util.Iterator;
import java.util.Map;

 * A cache backed by a Collections.SynchronizedMap
 * @author Vaclav Pech
public final class LRUCache implements MemoizeCache<Object, Object> {

    private final Map<Object, Object> cache;

    public LRUCache(final int maxCacheSize) {
        cache = Collections.synchronizedMap(new LRUProtectionStorage(maxCacheSize));

    public Object put(final Object key, final Object value) {
        return cache.put(key, value);

    public Object get(final Object key) {
        return cache.get(key);

     * Replying on the Collections.SynchronizedMap thread-safe iteration implementation the method will remove all entries holding
     * SoftReferences to gc-evicted objects.
    public void cleanUpNullReferences() {
        synchronized (cache) {
            final Iterator<Map.Entry iterator = cache.entrySet().iterator();
            while (iterator.hasNext()) {
                final Map.Entry<Object, Object> entry =;
                if (((SoftReference) entry.getValue()).get() == null) iterator.remove();

Other Groovy examples (source code examples)

Here is a short list of links related to this Groovy source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller


new blog posts


Copyright 1998-2021 Alvin Alexander,
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.