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

结果:(应该是成功了)

相关推荐
IT 行者2 小时前
GitHub Spec Kit 实战(五):/speckit.tasks 怎么拆——Spec Kit 五部曲收官
java·ai编程·claude
(Charon)2 小时前
【C++ 面试高频基础:指针、引用、const、static、new/delete 总结】
java·开发语言
一只齐刘海的猫2 小时前
【Leetcode】找到字符串中所有字母异位词
算法·leetcode·职场和发展
Yeats_Liao2 小时前
Feed流系统设计(三):数据模型与存储设计,从表结构到Redis收件箱
java·javascript·redis
JiaHao汤2 小时前
分布式事务方案全景:从理论到 Seata 落地
java·分布式·spring·spring cloud
海清河晏1112 小时前
数据结构 | 八大排序
数据结构·算法·排序算法
色空大师3 小时前
【debug调试详解-idea】
java·ide·intellij-idea·调试·远程调试
程序猿阿越3 小时前
AutoMQ源码(一)读、写、Compaction
java·后端·源码
IronMurphy3 小时前
【算法五十七】146. LRU 缓存
算法·缓存
ywl4708120873 小时前
jwt生产token,简单版helloworld
java·数据库·spring