GuavaMaps
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
public class GuavaMaps {
public static void main(String[] args) throws InterruptedException {
Cache<String, String> cache = CacheBuilder.newBuilder().expireAfterWrite(5, TimeUnit.SECONDS).build();
System.out.println("初始大小map:"+ cache.size());
cache.put("token1","name1");
cache.put("token2","name2");
cache.put("token3","name3");
Map<String,Cache<String,String>> maps = new HashMap<>();
for (int i = 0; i <200 ; i++) {
System.out.println(cache.size());
System.out.println( cache.getIfPresent("token3"));
Thread.sleep(1000L);
System.out.println(cache.asMap());
}
}
}
运行结果
初始大小map:0
3
name3
{token1=name1, token3=name3, token2=name2}
3
name3
{token1=name1, token3=name3, token2=name2}
3
name3
{token1=name1, token3=name3, token2=name2}
3
name3
{token1=name1, token3=name3, token2=name2}
3
name3
{}
3
null
{}
1
null
{}
1
null
{}
1
null