今天被组长一段教育批评,自己实在是惭愧。。。
要记录的东西,有两点 一点是实现一个小机能所写的算法,另一点是bug总结
1.算法实现的功能背景
一段时间内(10秒),出现不同的警告,会捕捉并进行处理,同样的警告在一定时间(10秒)内次数达到临界值(5次)后,再次出现相同警告不做处理。
我写的算法如下:
判断警告ID是否存在?
存在 不存在:map中添加ID
比 Time(现在的时间点-10秒)早的警告记录从记录的list中删除
检查list中出现同一警告 出现的回数。
若达到5次,则不再记录本次的警告记录,此时,说明已经达到临界值
若没达到5次,则记录此次警告,放在list中
思路大致如此。
2.代码实现的时候写出个bug
for(int i=0;i++<list.size();){
if (XXXX) {
list.remove(i); // 这里想要实现的功能是,将比Time早的警告记录删除,但是由于list删除第一个元素后,第二个元素的位置会变为第一个,所以bug就出现了
// 解决方案是 将for(int i=0;i++<list.size();) 变为 for(int i=list.size()-1; i-->=0;)
}
}
记录一下工作中的小问题,以后避免!