用java写一个算法,统计20S内一个事件连续出现的次数是否超过5次
时间: 2024-03-14 13:44:28 浏览: 52
Java统计一个字符串在另外一个字符串出现次数的方法
可以使用一个计数器和一个时间戳来解决这个问题。每当事件发生时,记录当前时间戳,并将计数器加1。每当事件结束时,计算当前时间戳与上一次事件结束的时间戳之差,如果小于等于20秒,则将计数器加1。如果计数器大于等于5,则表示事件在20秒内连续出现了5次或以上。
以下是Java代码实现:
```java
public class EventCounter {
private int count;
private long lastTimeStamp;
public EventCounter() {
count = 0;
lastTimeStamp = 0;
}
public void eventOccurred() {
long currentTimeStamp = System.currentTimeMillis() / 1000;
if (currentTimeStamp - lastTimeStamp <= 20) {
count++;
} else {
count = 1;
}
lastTimeStamp = currentTimeStamp;
}
public boolean isExceedThreshold() {
return count >= 5;
}
}
```
使用方法:
```java
EventCounter eventCounter = new EventCounter();
// 事件发生
eventCounter.eventOccurred();
// 判断事件连续出现次数是否超过5次
if (eventCounter.isExceedThreshold()) {
System.out.println("事件在20秒内连续出现了5次或以上");
}
```
阅读全文