Map<String, Object> map = new HashMap<>();
map.put("key1", "value1");
map.put("key2", "value2");
Set<String> set = new HashSet<>();
set.add("value1");
set.add("value2");
Cache<String, Object> cache = CacheBuilder.newBuilder()
.maximumSize(1000)
.expireAfterWrite(10, TimeUnit.MINUTES)
.build();
Object result = cache.get(key, () -> computeResult(key));
ExecutorService executor = Executors.newFixedThreadPool(10);
Future<Object> future = executor.submit(() -> performTask());
Object result = future.get();