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);
        }
    }

结果:(应该是成功了)

相关推荐
努力也学不会java6 分钟前
【设计模式】抽象工厂模式
java·设计模式·oracle·抽象工厂模式
小刘鸭地下城7 分钟前
深入浅出链表:从基础概念到核心操作全面解析
算法
用户60830892904716 分钟前
集合处理利器,Java中的Stream流API
java·后端
玉衡子17 分钟前
八、MySQL全局优化总结&MySQL8新特性
java·mysql
小刘鸭地下城17 分钟前
哈希表核心精要:从 O(1) 原理到链式地址与开放寻址
算法
9号达人20 分钟前
Java 14 新特性详解与实践
java·后端·面试
ytadpole22 分钟前
揭秘XXL-JOB:Bean、GLUE 与脚本模式的底层奥秘
java·后端
计算机毕业设计木哥37 分钟前
计算机毕设选题推荐:基于Java+SpringBoot物品租赁管理系统【源码+文档+调试】
java·vue.js·spring boot·mysql·spark·毕业设计·课程设计
青衫客3637 分钟前
Spring异步编程- 浅谈 Reactor 核心操作符
java·spring·响应式编程
Seven9738 分钟前
剑指offer-30、连续⼦数组的最⼤和
java