<dependencies>
<dependency>
<groupId>com.googlecode.concurrentlinkedhashmap</groupId>
<artifactId>concurrentlinkedhashmap-lru</artifactId>
<version>1.4.2</version>
</dependency>
</dependencies>
ConcurrentMap<String, String> cache = new ConcurrentLinkedHashMap.Builder<String, String>()
.maximumWeightedCapacity(1000)
.concurrencyLevel(16)
.build();
cache.put("key1", "value1");
cache.put("key2", "value2");
String value1 = cache.get("key1");
cache.remove("key2");
ExecutorService executor = Executors.newFixedThreadPool(10);
for (int i = 0; i < 10; i++) {
final int key = i;
executor.submit(() -> {
cache.put("key" + key, "value" + key);
String value = cache.get("key" + key);
System.out.println(value);
cache.remove("key" + key);
});
}
executor.shutdown();