本篇文章为大家展示了如何理解queue队列,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
今天有一个需求需要随时更新数据需要及时删除过期数据,就用到队列了。每执行一次定时任务就往queue中加一次数据,所以需要在一个独立于定时任务的类中加静态属性:
public static Queue<CB_SingleDolaryToday> 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队列,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。