学做会计账的网站,网站模板 jsp,东莞推广系统哪里找,广州网页制作在给定的包含时间戳的list中#xff0c;查找连续continueNum次的且时间间隔为needDiff的集合。 eg#xff1a;相邻两个数据的时间戳间隔为1分钟#xff0c;且超过30分钟有数据 /**** param list 包含时间戳#xff08;10位#xff09;的list* param continueNum 至少持续…在给定的包含时间戳的list中查找连续continueNum次的且时间间隔为needDiff的集合。 eg相邻两个数据的时间戳间隔为1分钟且超过30分钟有数据 /**** param list 包含时间戳10位的list* param continueNum 至少持续的数量* param needDiff 相邻数据的间隔单位s* return*/public static ListListTmpBean queryContinueList(ListTmpBean list,int continueNum,long needDiff) {ListListTmpBean result new ArrayList();ListLong timestamps list.stream().map(x - x.getPublishtime()).collect(Collectors.toList());list.sort((x1,x2)-x1.getPublishtime().compareTo(x2.getPublishtime()));if (timestamps.size() continueNum) {return null; }timestamps.sort(Long::compareTo); // 按照时间戳升序排序ListListLong hisList new ArrayList();long startTime timestamps.get(0);for (int i 1; i timestamps.size(); i) {long trueTime startTime needDiff * i;long realTime timestamps.get(i);if (trueTime realTime) {continue;} else {ListTmpBean delBeans new ArrayList(list.subList(0, i 1));result.add(delBeans);list.removeAll(delBeans);ListLong delTimes new ArrayList(timestamps.subList(0, i 1));//左闭右开hisList.add(delTimes);timestamps.removeAll(delTimes);int nowSize timestamps.size();if (nowSize continueNum) {ListTmpBean delLastBean new ArrayList(list.subList(0,nowSize));result.add(delLastBean);break;} else {startTime timestamps.get(0);}i 0;}}ListListTmpBean lists result.stream().filter(lis - lis.size() continueNum).collect(Collectors.toList());return lists;}public static void main(String[] args) {//调用此方法可以找到list中所有相邻时间为60s且连续次数30的目标listqueryContinueList(list,30,60);}