
// LRUMapTester.java
// https://apothem.blog/apache-commons-collections.html
// Andrew Davison, ad@coe.psu.ac.th, May 2023

/*  A LRUMap is a limited-size cache where the 
    least recently used (LRU) elements are deleted to make room 
    for new elements when the cache is full. 

  Usage:
    > compile LRUMapTester.java
    > run LRUMapTester

   Also see:
     OrderedMapTester.java
     ExpiringMapTester
     TransformedMapTester
     SplitMapTester
     PredicateMapTester.java
   and
     MapUtilsTester.java

*/


import java.util.*;

import org.apache.commons.collections4.*;
import org.apache.commons.collections4.map.*;



public class LRUMapTester 
{

  public static void main(String[] args) 
  {
    System.out.println("A map with cache size == 2");
    LRUMap<String, Integer> lruMap = new LRUMap<>(2);
    System.out.println("Add v1 and v2");

    lruMap.put("v1", 1);
    lruMap.put("v2", 2);
    System.out.println("Map: " + lruMap);

    System.out.println("Add v3");
    lruMap.put("v3", 3);
    System.out.println("Map: " + lruMap);

    System.out.println("Use v2 and add v4");
    lruMap.get("v2");
    lruMap.put("v4", 4);
    System.out.println("Map: " + lruMap);
  }  // end of main()

}  // end of LRUMapTester class
