问答

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

作者:admin 2021-05-11 我要评论

有主臂工作半径和主臂实际载荷这两个字段 这个图是我统计生成的,横轴是主臂工作半径值区间,纵轴是这个区间的值出现的次数。比如半径大于18小于19的值出现了314...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

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

###

生成图表可以用 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
},{})
###

这应该是属于符号表的基本功能吧,方法很多啊,而且和语言无关,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

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 二维数据聚合求最大值,用JavaScript或

    二维数据聚合求最大值,用JavaScript或

  • aria2如何设置session的权限 不然任何

    aria2如何设置session的权限 不然任何

  • react-native FlatList加入CellRendere

    react-native FlatList加入CellRendere

  • 使用Apscheduler做cron调度,方法无法

    使用Apscheduler做cron调度,方法无法

腾讯云代理商
海外云服务器