如何理解queue队列

本篇文章为大家展示了如何理解queue队列,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

我们提供的服务有:成都网站制作、网站设计、微信公众号开发、网站优化、网站认证、京山ssl等。为成百上千企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的京山网站制作公司

今天有一个需求需要随时更新数据需要及时删除过期数据,就用到队列了。每执行一次定时任务就往queue中加一次数据,所以需要在一个独立于定时任务的类中加静态属性:

public static Queue queue = new LinkedList<>()

因为需要求元素和所以加静态属性   public static double sumDolary = 0.0;

在定时任务中需要更新队列并删除过期元素

/**
* 循环检测队列头元素,如果超期则移除该元素 并继续进行检测,直到检测出未超期
*/

//以头元素是否超期为条件,头元素没超期其他就不再超期
while (isDelay(DolaryTodayMark.queue.peek())) {
CB_SingleDolaryToday dt = DolaryTodayMark.queue.poll();
if (dt == null) {
break;
}

//并减去删除的元素
DolaryTodayMark.sumDolary = DolaryTodayMark.sumDolary - Double.parseDouble(dt.getDolary());
}

private boolean isDelay(CB_SingleDolaryToday dolaryToday) {
// 如果队列头元素为空,则返回false,说明没有元素超期
if (dolaryToday == null) {
return false;
} else if (System.currentTimeMillis() - dolaryToday.getTime() > delayTime) {
return true;
} else {
return false;
}

}

上述内容就是如何理解queue队列,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


名称栏目:如何理解queue队列
文章网址:http://scyanting.com/article/gejcoj.html