package guang.crawler.siteManager.jobQueue; import java.util.List; /** * 结合Map和Queue特点的数据结构。该数据结构拥有自己的key,能够通过键值来删除指定的元素;另外,能够通过队列的操作,在数据结构的一端插入和获取元素. * * @author yang * @param <T> */ public abstract class MapQueue<T> { /** * 工作队列一旦关闭,就不允许再对其进行其他的操作 */ public abstract void close(); /** * 删除队列中指定数量的若干元素,返回实际删除的元素的个数 */ public abstract boolean delete(T element); /** * 获取最多max个元素 */ public abstract List<T> get(int max); /** * 获取队列的长度 */ public abstract long getLength(); /** * 依次遍历队列中的资源 * * @return */ public abstract MapQueueIterator<T> iterator(); /** * 向队列中添加一个元素 */ public abstract void put(T element); }