光电数鸡算法《java》

news2025/1/10 23:24:52

一:需求

题目:一条流水线有工位D1,D2,D3…D20,总共20个工位。
每个工位都装有一个光电计数器,每个工位都为本工位的计数减去前一个工位(第一个有数值的工位除外,不计算。)
计算规则:比如D1,D2都有数值,D2计数等于D2-D1为,D1不计算,以此类推。
在这里插入图片描述
现在数据库中存着这些工位计数的明细数据,要求从数据库中查出当天每个工位的光电计数值,并求出每个工位具体的计数值。
注意:D1到D20,20是个工位中有可能有的工位没有数值,数据库明细中没有记录。如数据:D1数值20,D2为80,剩余数据没有了(数据库明细中只有这两个数据)。
解释:数据D1为80,D2为100,D2后面所有工位为空,那么计算后,D1计数值为80,D2为100-80=20,如果哪个工位为空,不再计算,直接为0。

二:代码解答

注意:下面是测试代码,各位看看就好
这个是测试代码:

import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

    public class GoodIntegers {
        public static void countWholeDayPairs(List<ShStatisticsDetails> list) {

            Map<String, Integer> countsMap = new HashMap<>();
            for (int i = 0; i < list.size() ; i++) {
                ShStatisticsDetails rs = list.get(i);
                countsMap.put(rs.getWorkStation(), rs.getChickenNum());
            }

            int[] actualCounts = new int[20];
            int previousCount = 0;
            for (int i = 0; i < 20; i++) {
                String currentStation = "D" + (i + 1);
                int currentCount = countsMap.getOrDefault(currentStation, 0);
                if (i == 0) {
                    actualCounts[i] = currentCount;  
                } else {
                    if (currentCount != 0 || countsMap.containsKey(currentStation)) {
                        actualCounts[i] = currentCount - previousCount;
                        previousCount = currentCount;
                    } else {
                        actualCounts[i] = 0;  
                    }
                }
            }
            for (int i = 0; i < 20; i++) {
                System.out.println("D" + (i + 1) + ": " + actualCounts[i]);
            }
        }

        public static void main(String[] args) {
            List<ShStatisticsDetails> list = new LinkedList<>();
            //创建对象,依次放入D1,D2还有数值
            ShStatisticsDetails s1 = new ShStatisticsDetails();
            s1.setWorkStation("D2");
            s1.setChickenNum(80);
            list.add(s1);

            ShStatisticsDetails s2 = new ShStatisticsDetails();
            s2.setWorkStation("D3");
            s2.setChickenNum(100);
            list.add(s2);


            ShStatisticsDetails s3 = new ShStatisticsDetails();
            s3.setWorkStation("D12");
            s3.setChickenNum(220);
            list.add(s3);


            ShStatisticsDetails s4 = new ShStatisticsDetails();
            s4.setWorkStation("D18");
            s4.setChickenNum(260);
            list.add(s4);

            ShStatisticsDetails s5 = new ShStatisticsDetails();
            s5.setWorkStation("D6");
            s5.setChickenNum(120);
            list.add(s5);
          countWholeDayPairs(list);
        }
    }

用的ShStatisticsDetails实体类:

public class ShStatisticsDetails
{
    private static final long serialVersionUID = 1L;

    /** 机器号 */
    @Excel(name = "机器号")
    private String machineNumber;

    /** 工位 */
    @Excel(name = "工位")
    private String workStation;

    /** 统计数鸡数量(明细) */
    @Excel(name = "统计数鸡数量", readConverterExp = "明=细")
    private Integer chickenNum;
    }

结果

D1: 0
D2: 80
D3: 20
D4: 0
D5: 0
D6: 20
D7: 0
D8: 0
D9: 0
D10: 0
D11: 0
D12: 100
D13: 0
D14: 0
D15: 0
D16: 0
D17: 0
D18: 40
D19: 0
D20: 0

解析:
(1)将查询结果(也就是上面的list集合数据)存储在一个Map中,工位为map的key,光电计数为value,以便后续处理。
如果某个工位没有数据,使用getOrDefault方法给出默认值0。
(2)计算每个工位的实际计数:遍历所有工位,计算每个工位的实际计数。
如果当前工位为第一个,则直接使用其计数值;
否则,计算当前工位与前一个工位的差值。如果某个工位的数据缺失,则设置该工位的计数值为0。
总结:
总体而言并不算太难,加油!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1845994.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android CTS环境搭建

CTS即Compatibility Test Suite意为兼容性测试&#xff0c;是Google推出的Android平台兼容性测试机制。其目的是尽早发现不兼容性&#xff0c;并确保软件在整个开发过程中保持兼容性。只有通过CTS认证的设备才能合法的安装并使用Google market等Google应用。 搭建CTS测试环境需…

计算机网络:应用层 - 域名系统 DNS

计算机网络&#xff1a;应用层 - 域名系统 DNS 域名结构域名服务器域名解析迭代查询递归查询 互联网中的每台设备都有一个唯一的IP地址&#xff0c;但这些地址通常是复杂的数字组合&#xff0c;例如 172.217.160.142&#xff0c;难以记忆和识别。域名系统将这些复杂的IP地址与易…

通过腾讯云TDSQL TCPTCE(MySQL版)认证考试秘籍宝典

腾讯云TDSQL(MySQL版)交付运维高级工程师TCCP证书展示 腾讯云TDSQL(MySQL版)交付运维专家TCCE考试成绩、证书展示 认证类型与级别 TCCA:入门级(初级) TCCP:高级(中级) TCCE:专家级(高级) 考试形式 考试是在线考试&#xff0c;考生需要在腾讯云大学官网上完成。 腾讯云TDSQ…

【会议征稿】2024年应用计算智能、信息学与大数据国际会议(ACIIBD 2024,7月26-28)

2024年应用计算智能、信息学与大数据国际学术会议&#xff08;ACIIBD 2024&#xff09;将于2024年7月26-28日在中国广州举办。会议将聚焦于计算智能及其应用、信息、大数据等相关的研究领域&#xff0c; 广泛邀请国内外知名专家学者&#xff0c;共同探讨相关学科领域的最新发展…

深入理解和实现Windows进程间通信(信号量)

常见的进程间通信方法 常见的进程间通信方法有&#xff1a; 管道&#xff08;Pipe&#xff09;消息队列共享内存信号量套接字 下面&#xff0c;我们将详细介绍信号量的原理以及具体实现。 什么是信号量&#xff1f; 信号量&#xff08;Semaphore&#xff09;是一个非常重要…

【数据库】数据库脚本编写规范(Word原件)

编写本文档的目的是保证在开发过程中产出高效、格式统一、易阅读、易维护的SQL代码。 1 编写目的 2 SQL书写规范 3 SQL编写原则 软件全套资料获取进主页或者本文末个人名片直接获取。

OPPO布局自动驾驶?基于语义地图的自动驾驶汽车单目定位

论文标题&#xff1a; Monocular Localization with Semantics Map for Autonomous Vehicles 论文作者&#xff1a; Jixiang Wan, Xudong Zhang, Shuzhou Dong, Yuwei Zhang, Yuchen Yang, Ruoxi Wu, Ye Jiang, Jijunnan Li, Jinquan Lin, Ming Yang 作者单位&#xff1a;O…

CoAP协议详解:物联网通信的轻量级解决方案

什么是CoAP协议 CoAP&#xff08;Constrained Application Protocol&#xff09;是一种专门为物联网&#xff08;IoT&#xff09;设计的应用层协议。它的目标是为受限设备和网络提供轻量级的通信解决方案。CoAP协议基于REST&#xff08;Representational State Transfer&#x…

云手机群控功能讲解

接触云手机之前&#xff0c;很多企业或者个人卖家都对群控有浓厚的兴趣&#xff0c;云手机群控具体是什么呢&#xff1f;云手机群控&#xff0c;顾名思义&#xff0c;是指能够同时对多台云手机进行集中控制和管理的功能。打破了传统单台手机操作的限制&#xff0c;实现了规模化…

数据资产与企业绩效的紧密关联:深入解析数据资产如何直接影响企业绩效,并探讨如何通过策略性利用数据,优化运营,进而提升企业的整体业绩与竞争力

目录 一、引言 二、数据资产与企业绩效的紧密关联 &#xff08;一&#xff09;数据资产的定义与价值 &#xff08;二&#xff09;数据资产对企业绩效的影响 三、策略性利用数据资产优化运营 &#xff08;一&#xff09;建立数据驱动的企业文化 &#xff08;二&#xff0…

ACM顶会SIGGRAPH 2024最佳论文出炉:英伟达两篇最佳论文,三支国内团队获荣誉提名,浙大周昆获时间检验奖

文章目录 1. 最佳论文最佳论文 1最佳论文 2最佳论文 3最佳论文 4最佳论文 5 2. 最佳论文荣誉提名最佳论文荣誉提名 1最佳论文荣誉提名 2最佳论文荣誉提名 3最佳论文荣誉提名 4最佳论文荣誉提名 5最佳论文荣誉提名 6最佳论文荣誉提名 7最佳论文荣誉提名 8最佳论文荣誉提名 9最佳…

【VS Code 插件】SQLite 可视化插件

VScode 插件分享篇之sqlite可视化工具 项目经常用到SQLite这个轻量型数据库&#xff0c;于是乎&#xff0c;就想着找一个可视化工具&#xff0c;但是我有时候只是想方便预览数据 表&#xff0c;又不想安装额外的程序&#xff0c;那么这款插件很适合你。 用习惯VS Code的小伙伴…

测试的基础知识大全【测试概念、分类、模型、流程、测试用例书写、用例设计、Bug、基础功能测试实战】

测试基础笔记 Day01阶段⽬标⼀、测试介绍⼆、测试常⽤分类2.1 阶段划分单元测试集成测试系统测试验收测试 2.2 代码可⻅度划分⿊盒测试&#xff1a;主要针对功能&#xff08;阶段划分->系统测试&#xff09;灰盒测试&#xff1a;针对接⼝测试&#xff08;阶段划分->集成测…

服务器机柜和网络机柜有什么区别

服务器机柜和网络机柜虽然在外观上可能相似&#xff0c;都遵循19英寸的标准&#xff0c;但它们的设计目的、功能、结构和特性存在明显的区别。下面是两者的主要区别&#xff1a; 1. 用途 服务器机柜&#xff1a;主要用于承载和组织服务器设备&#xff0c;包括主机、存储设备、交…

redis以后台的方式启动

文章目录 1、查看redis安装的目录2、Redis以后台的方式启动3、通过客户端连接redis4、连接后&#xff0c;测试与redis的连通性 1、查看redis安装的目录 [rootlocalhost ~]# cd /usr/local/redis/ [rootlocalhost redis]# ll 总用量 112 drwxr-xr-x. 2 root root 150 12月 6…

人工智能导论 题目

目录 1.人工神经网络参数个数的计算 2.卷积神经网络卷积和池化的计算 知识表示 命题 谓词 谓词公式 1.连接词 2.量词 3.量词的辖域 逻辑等价式 范式 推理规则 全程量词和存在量词之间的关系 产生式 产生式系统 3.命题/谓词逻辑证明 1.​ ​2. 3. 4. 5. 6. …

双阶段目标检测算法

双阶段目标检测算法 本文将系统的过一遍双阶段目标检测的经典算法&#xff0c;文献阅读顺序如下&#xff1a; R-CNN → \rightarrow → SPPnet → \rightarrow → Fast R-CNN → \rightarrow → Faster R-CNN → \rightarrow → Mask R-CNN R-CNN 一、研究背景 R-CNN可…

跟《经济学人》学英文:2024年6月15日这期 Durians

China is going crazy for durians Locals love the pungent fruit. The government sees an opportunity 这是阅读2024年6月15日《经济学人》杂志的China is going crazy for durians这篇文章的学习笔记。 durian&#xff1a;美 [ˈdʊriən] 榴莲 A whiff of diplomacy 一…

适合孩子学习用什么的落地灯?五款精品护眼大路灯分享

适合孩子学习用什么的落地灯&#xff1f;说到护眼落地灯&#xff0c;都会出现两种呼声&#xff1a;一种是认为是“智商税”&#xff0c;而另外一种则是妥妥的照明神器&#xff01;护眼大路灯到底是哪种定义呢&#xff1f;贵的护眼灯一定好吗&#xff1f; 这么年&#xff0c;护…

湖北建筑施工特种作业人员建筑起重信号司索工:年薪多少?

"湖北建筑施工特种作业人员建筑起重信号司索工&#xff1a;年薪多少&#xff1f;前景如何&#xff1f;" 2024湖北建筑施工特种作业人员建筑起重信号司索工 2024年湖北省建筑施工特种作业人员中的建筑起重信号司索工&#xff0c;是一项关键的工种&#xff0c;其在建筑…