关于集合类,我们平时用的较多的有ArrayList,HashMap,TreeSet等,java集合框架还提供了一个常用接口Queue,在java.util.concurrent包下有大量队列的实现类,可见队列在并发编程里广泛使用,大致类图如下:
java.util.concurrent包下提供了很多实用的类,DelayQueue便是其中之一,它是一种延迟队列,主要用于缓存和任务处理等。下面是一个使用DelayQueue实现一个简单的缓存工具的模拟代码,用于练习使用DelayQueue类:
package com.jack.jucstudy.delayQueue;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.concurrent.DelayQueue;
public class MyCacheUtil {
private final DelayQueue<CacheObject> cacheQueue = new DelayQueue<CacheObject>();
public MyCacheUtil() {
run();
}
/**
* 设置不过期的缓存
* @param key
* @param value
*/
public void set(String key, Object value) {
Map<String,Object> data = new HashMap<String, Object>();
data.put(key, value);
cacheQueue.add(CacheObject.buildPermanentObject(data));
}
/**
* 设置带有过期时间的缓存
* @param key
* @param value
* @param time
*/
public void set(String key, Object value, long time) {
Map<String,Object> data = new Ha