二维数据聚合求最大值,用JavaScript或者Java怎么实现啊?

发布于 2022-09-12 13:43:40 字数 435 浏览 20 评论 0

d91cfd87ef7399f82ac2349ff3d9865.png
有主臂工作半径和主臂实际载荷这两个字段
8634619ed662e1aef01b7c0fffdb8bb.png
这个图是我统计生成的,横轴是主臂工作半径值区间,纵轴是这个区间的值出现的次数。比如半径大于18小于19的值出现了3142次,这3142个半径值在上面excel表里就对应3142个主臂实际载荷的值,现在我想取这3142个主臂实际载荷值中的最大值。也就是说,最终的需求就是,取每个半径值区间内最大的主臂实际载荷值。用JavaScript或者Java怎么写啊?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

蓝眼泪 2022-09-19 13:43:40

这应该是属于符号表的基本功能吧,方法很多啊,而且和语言无关,java有相关实现的,你这种场景,适合TreeSet;

TreeSet<Integer> set = new TreeSet<>();
        set.add(1);
        set.add(3);
        set.add(5);
        set.add(7);
        set.add(9);

 System.out.println(set.floor(4));

打印结果:3

如果你是entry关系,就用TreeMap;

 TreeMap<Integer,Integer> set = new TreeMap<>();
        set.put(1,100);
        set.put(3,300);
        set.put(5,500);
        set.put(7,700);
        set.put(9,900);

 System.out.println(set.floorEntry(4).getValue());

打印结果:300

北斗星光 2022-09-19 13:43:40

生成图表可以用 echarts 之类的

单纯计算的话就是遍历呗,看上去你把 key 向下取整,然后 value 取最大值,赋值保存即可

image.png

[
    [1.1,2],
    [1.1,3],
    [1.1,4],
    [1.1,5],
    [1.1,4],
    [1.9,1],
    [1.3,2],
    [1.3,3],
    [1.3,4],
    [1.3,5],
    [1.3,4],
    [1.3,1],
    [1.3,2],
    [1.3,3],
    [3.3,4],
    [1.3,5],
    [5.3,4],
    [1.3,1],
    [9.9,1]
].reduce((s, v)=>{
    key = v[0]>>0;
    s[key] = Math.max(s[key] || 0, v[1])
    return s
},{})
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文