zoukankan      html  css  js  c++  java
  • 关于存储最近N次数据的问题的实现

    需求描述:

    需要实现采集中,始终保持最近10次的数据

    描述分析:

    当采集第一次数据的存储的时候,开辟一个长度为11的list,和一个标记为来记录当前的采集轮询次数(记录1-10,第11次数值归1)

    数据结构:
    public int Flag { get; set; }
    /// <summary>
    /// 现在需求是要存储10次采集的丢包次数,一次采集为10个包
    /// 这里规定Data[0]为10次采集的丢包总数,Data[1]-Data[10]为每次采集的丢包数
    /// 每采集满10,Flag归1,Data[0]减去原有Data[1]的数据,加上新采集的数据,数据存入Data[1]
    /// </summary>
    public List<int> Data { get; set; }

    代码实现:

    List<int> data = cameralist[i].LoseData.Data;
    if (cameralist[i].LoseData.Flag + 1 >= 10)
    {
    data[0] = data[0] - data[1] + cameralist[i].LosePacket;
    cameralist[i].LoseData.Flag = 0;
    }
    else
    {
    data[0] = data[0] - data[cameralist[i].LoseData.Flag + 1] + cameralist[i].LosePacket;
    }
    data[cameralist[i].LoseData.Flag + 1] = cameralist[i].LosePacket;
    camera.LoseData = new LosePacketData
    {
    Flag = cameralist[i].LoseData.Flag + 1,
    Data = data
    };
    updatalist.Add(camera);

  • 相关阅读:
    MySql—修改权限
    linux apache Tomcat配置SSL(https)步骤
    spark-shell启动错误
    spark
    Ubuntu不能连接网络
    NSGA-II算法学习
    SpringBoot集成mybatis,同时读取一个数据库中多个数据表
    设置虚拟机ip地址
    发送邮件
    spring session
  • 原文地址:https://www.cnblogs.com/pangzili/p/8862236.html
Copyright © 2011-2022 走看看