http://stackoverflow.com/questions/221525/how-would-you-implement-an-lru-cache-in-java-6