工具类-滑动窗口判断是否存在最大连续日期
Posted 阿拉的梦想
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工具类-滑动窗口判断是否存在最大连续日期相关的知识,希望对你有一定的参考价值。
工具类-滑动窗口判断是否存在最大连续日期
使用场景:判断是否存在连续的N天。
package com.demo;
import java.util.HashSet;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Author ccl
* @Date 2021/6/10 16:09
*/
public class Demo {
public static void main(String[] args) {
HashSet<Integer> days = new HashSet<>();
days.add(20210601);
days.add(20210602);
days.add(20210603);
days.add(20210605);
days.add(20210606);
days.add(20210607);
//days.add(20210608);
//days.add(20210609);
days.add(20210611);
//days.add(20210612);
days.add(20210614);
days.add(20210613);
days.add(20210616);
boolean flag = hasContinuousDate(days, 2);
System.out.println(flag);
}
private static boolean hasContinuousDate(HashSet<Integer> days, int continueMax) {
if (days.size() < continueMax) {
return false;
}
boolean flag = false;
int count = 1;
int preDay = 0;
final List<Integer> list = days.stream().sorted().collect(Collectors.toList());
for (Integer day : list) {
if (day - preDay == 1) {
count++;
} else {
count = 1;
}
preDay = day;
if (count >= continueMax) {
flag = true;
break;
}
}
return flag;
}
}
以上是关于工具类-滑动窗口判断是否存在最大连续日期的主要内容,如果未能解决你的问题,请参考以下文章
hutool日期工具类相关:获取某月所有周某周的起止时间或所有日期计算连续天数