Step 1: Get an instance of ExpiringMap.
Map<Integer, Employee> expiringMap = ExpiringMap.builder().maxSize(100).expiration(18, TimeUnit.SECONDS).build();
In the above example,
a. ExpiringMap is can store Employee instances, where Integer is the key and Employee object is the value.
b. I set the maximum size of the expiring map to 100 and
c. expiry time of the entry to 18 seconds.
Step 2: Add entries to the expiringMap and test it accordingly.
expiringMap.put(1, new Employee(1, "Krishna"));
Find the below working application.
Employee.java
package com.sample.app.model;
public class Employee {
private int id;
private String name;
public Employee(int id, String name) {
super();
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Employee [id=" + id + ", name=" + name + "]";
}
}
HelloWorld.java
package com.sample.app;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import net.jodah.expiringmap.ExpiringMap;
import com.sample.app.model.Employee;
public class HelloWorld {
private static void sleepNSeconds(int n) throws InterruptedException {
System.out.println("\nSleeping for " + n + " seconds");
TimeUnit.SECONDS.sleep(5);
}
public static void main(String args[]) throws InterruptedException {
Map<Integer, Employee> expiringMap = ExpiringMap.builder().maxSize(100).expiration(18, TimeUnit.SECONDS)
.build();
expiringMap.put(1, new Employee(1, "Krishna"));
sleepNSeconds(5);
System.out.println("Entry with key 1 -> " + expiringMap.get(1));
sleepNSeconds(5);
System.out.println("Entry with key 1 -> " + expiringMap.get(1));
sleepNSeconds(5);
System.out.println("Entry with key 1 -> " + expiringMap.get(1));
sleepNSeconds(n);
System.out.println("Entry with key 1 -> " + expiringMap.get(1));
}
}
Output
Sleeping for 5 seconds Entry with key 1 -> Employee [id=1, name=Krishna] Sleeping for 5 seconds Entry with key 1 -> Employee [id=1, name=Krishna] Sleeping for 5 seconds Entry with key 1 -> Employee [id=1, name=Krishna] Sleeping for 5 seconds Entry with key 1 -> null
No comments:
Post a Comment