• 按照型号分组,分组后统计数量


    //按照型号进行分组
            List<VResNeList> vResNeListList = vResNeLists.stream().collect(
                    Collectors.collectingAndThen(Collectors.toCollection(() ->
                            new TreeSet<>(Comparator.comparing(VResNeList::getTypeId))), ArrayList::new));
            //分组后获取在线和离线
            for (VResNeList vResNeList : vResNeListList) {
                // 获取相同型号下的在线离线数量
                List<VResNeList> down = vResNeLists.stream()
                        .filter(item -> (item.getTypeId().equals(vResNeList.getTypeId()) && (item.getState() == (0))))
                        .collect(Collectors.toList());
                List<VResNeList> up = vResNeLists.stream()
                        .filter(item -> (item.getTypeId().equals(vResNeList.getTypeId()) && (item.getState() == (1))))
                        .collect(Collectors.toList());
                System.out.println(down.size()+"离线" + up.size()+ "在线");
                int total = (up.size()+ down.size());
                if (total > 0){
                    // 创建一个数值格式化对象
                    NumberFormat numberFormat = NumberFormat.getInstance();
                    // 设置精确到小数点后2位
                    numberFormat.setMaximumFractionDigits(2);
                    String result = numberFormat.format((float)up.size()/ (float)total * 100);
                    //在线离线状态返回对象
                    NeReportStateVO neReportStateVO = new NeReportStateVO();
                    neReportStateVO.setName(vResNeList.getTypeName());
                    neReportStateVO.setOnlineTotal(up.size());
                    neReportStateVO.setOfflineTotal(down.size());
                    neReportStateVO.setOnlineRate(Double.valueOf(result));
                    neReportStateVO.setTotal(total);
                    neReportVOS.add(neReportStateVO);
                }else {
                    //在线离线状态返回对象
                    NeReportStateVO neReportStateVO = new NeReportStateVO();
                    neReportVOS.add(neReportStateVO);
                }
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
  • 相关阅读:
    sqlplus set参数大区
    HCIP实验6
    搞什么副业可以月入过万?你们觉得抖音小店做起来能赚多少钱?
    VuePress - 基于vue的操作文档开发
    After Effects 2023 v23.6
    架构师之路5. 浪潮LG - 离职
    数据安全逐步落地,必须紧盯泄露源头
    P1523 旅行商简化版, 路径dp
    毕业设计之基于Spring+SpringMVC+Mybatis分布式敏捷开发系统架构
    MobileViT——论文简述
  • 原文地址:https://blog.csdn.net/weixin_43447266/article/details/126105374