温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何理解queue队列

发布时间:2021-11-17 16:34:43 来源:亿速云 阅读:117 作者:柒染 栏目:软件技术

本篇文章为大家展示了如何理解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队列,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI