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

结果:(应该是成功了)

相关推荐
papership4 分钟前
【入门级-算法-5、数值处理算法:高精度的乘法】
数据结构·算法
earthzhang20215 分钟前
【1039】判断数正负
开发语言·数据结构·c++·算法·青少年编程
谈笑也风生8 分钟前
只出现一次的数字 II(一)
数据结构·算法·leetcode
蕓晨9 分钟前
auto 自动类型推导以及注意事项
开发语言·c++·算法
一袋米扛几楼9812 分钟前
【软件安全】C语言特性 (C Language Characteristics)
java·c语言·安全
mjhcsp39 分钟前
C++ 递推与递归:两种算法思想的深度解析与实战
开发语言·c++·算法
_OP_CHEN44 分钟前
算法基础篇:(三)基础算法之枚举:暴力美学的艺术,从穷举到高效优化
c++·算法·枚举·算法竞赛·acm竞赛·二进制枚举·普通枚举
m0_748248021 小时前
《详解 C++ Date 类的设计与实现:从运算符重载到功能测试》
java·开发语言·c++·算法
天选之女wow1 小时前
【代码随想录算法训练营——Day61】图论——97.小明逛公园、127.骑士的攻击
算法·图论
aloha_7891 小时前
测试开发工程师面经准备(sxf)
java·python·leetcode·压力测试