java对时间序列每x秒进行分组

问题:将一个时间序列每5秒分一组,返回嵌套的list;

原理:int除int会得到一个int(也就是损失精度)

输入:排序后的list,每几秒分组值

bash 复制代码
    private static List<List<Long>> getSerialSlice(List<Long> serialList, long values) {
        return new ArrayList<>(serialList.stream().collect(
                Collectors.groupingBy(timestamp -> timestamp/ values)).values());
    }

测试:

bash 复制代码
    public static void main(String[] args) {
        List<Long> list = new ArrayList<>();
        list.add(1800000L);
        list.add(1801000L);
        list.add(1802000L);
        list.add(1803000L);
        list.add(1804000L);
        list.add(1805000L);
        list.add(1807000L);
        list.add(1808000L);
        list.add(1810000L);
        list.add(1813000L);
        list.add(1816000L);
        list.add(1817000L);
        List<List<Long>> slice = getSerialSlice(list, 5000);
        for (List<Long> longs : slice) {
            System.out.println("longs = " + longs);
        }
    }

结果:

ps:有人就想要12345为一组,而不要01234为一组,也可以:

bash 复制代码
    private static List<List<Long>> getSerialSlice(List<Long> serialList, long values) {
        return new ArrayList<>(serialList.stream().collect(
                Collectors.groupingBy(timestamp -> (timestamp-1000)/ values)).values());
    }
相关推荐
kangkang-24 分钟前
PC端基于SpringBoot架构控制无人机(三):系统架构设计
java·架构·无人机
界面开发小八哥2 小时前
「Java EE开发指南」如何用MyEclipse创建一个WEB项目?(三)
java·ide·java-ee·myeclipse
董董灿是个攻城狮2 小时前
5分钟搞懂什么是窗口注意力?
算法
Dann Hiroaki2 小时前
笔记分享: 哈尔滨工业大学CS31002编译原理——02. 语法分析
笔记·算法
idolyXyz3 小时前
[java: Cleaner]-一文述之
java
一碗谦谦粉3 小时前
Maven 依赖调解的两大原则
java·maven
netyeaxi3 小时前
Java:使用spring-boot + mybatis如何打印SQL日志?
java·spring·mybatis
收破烂的小熊猫~3 小时前
《Java修仙传:从凡胎到码帝》第四章:设计模式破万法
java·开发语言·设计模式
猴哥源码4 小时前
基于Java+SpringBoot的动物领养平台
java·spring boot
老任与码4 小时前
Spring AI Alibaba(1)——基本使用
java·人工智能·后端·springaialibaba