java对时间序列根据阈值进行连续性分片

问题描述:我需要对一个连续的时间戳list进行分片,分片规则是下一个数据比当前数据要大于某一个阈值则进行分片;

解决方式:

1、输入的有顺序的list ,和需要进行分片的阈值

2、调用方法,填入该排序的list和阈值

java 复制代码
   private static List<List<Long>> getObuInfoGroup(List<Long> infoGroupList, long values) {
        List<List<Long>> res = new ArrayList<>();
        List<Long> subList = new ArrayList<>();
        for (int i = 0; i < infoGroupList.size(); i++) {
            if (i > 0 && (infoGroupList.get(i) - infoGroupList.get(i - 1) > values)) {
                res.add(subList);
                subList = new ArrayList<>();
            }
            subList.add(infoGroupList.get(i));
        }
        res.add(subList);
        return res;
    }

检验:

bash 复制代码
   public static void main(String[] args) {
        List<Long> list = new ArrayList<>();
        list.add(18000000L);
        list.add(18001000L);
        list.add(18002000L);
        list.add(18003000L);
        list.add(18004000L);
        list.add(18006000L);
        list.add(18007000L);
        list.add(18010000L);
        list.add(18011000L);
        list.add(18012000L);
        list.add(18015000L);
        list.add(18016000L);
        list.add(18017000L);
        list.add(18018000L);
        //这块我们的序列如果是无序的,可以 list.sort(xx)一下
        List<List<Long>> listList = getObuInfoGroup(list, 2000);
        for (List<Long> longs : listList) {

            System.out.println("longs = " + longs);
        }
    }

结果:(应该是成功了)

相关推荐
武子康32 分钟前
Java-72 深入浅出 RPC Dubbo 上手 生产者模块详解
java·spring boot·分布式·后端·rpc·dubbo·nio
_殊途1 小时前
《Java HashMap底层原理全解析(源码+性能+面试)》
java·数据结构·算法
椰椰椰耶2 小时前
【Spring】拦截器详解
java·后端·spring
没有bug.的程序员3 小时前
JAVA面试宝典 - 《MyBatis 进阶:插件开发与二级缓存》
java·面试·mybatis
没有羊的王K4 小时前
SSM框架学习——day1
java·学习
珊瑚里的鱼4 小时前
LeetCode 692题解 | 前K个高频单词
开发语言·c++·算法·leetcode·职场和发展·学习方法
又菜又爱coding4 小时前
安装Keycloak并启动服务(macOS)
java·keycloak
不知道叫什么呀5 小时前
【C】vector和array的区别
java·c语言·开发语言·aigc
wan_da_ren5 小时前
JVM监控及诊断工具-GUI篇
java·开发语言·jvm·后端
秋说5 小时前
【PTA数据结构 | C语言版】顺序队列的3个操作
c语言·数据结构·算法