1.需求:获取count为null和不为null的持续变化

[{count=0, time=0},
{count=10, time=1000},
{count=20, time=2000},
{count=30, time=3000},
{count=40, time=4000},
{count=null, time=5000},
{count=null, time=6000},
{count=null, time=7000},
{count=null, time=8000},
{count=null, time=9000},
{count=100, time=10000},
{count=110, time=11000},
{count=120, time=12000},
{count=130, time=13000},
{count=140, time=14000}]

2.代码如下:

package com.stop;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; /**
* static boolean temp_flag; // 记录容器
public void execute(boolean flag) {
if (temp_flag == flag) {
// 没有变化
} else {
if (flag == false) {
// 上次是true,本次是false
} else {
// 上次是false本次是true
}
}
}
*/
public class Test {
public static List<Map<String, Object>> buildList() {
List<Map<String, Object>> items = new ArrayList<>();
for(int i=0;i<5;i++) {
Map<String,Object> map = new HashMap<>();
map.put("time", i*1000);
map.put("count", i*10);
items.add(map);
}
for(int i=5;i<10;i++) {
Map<String,Object> map = new HashMap<>();
map.put("time", i*1000);
map.put("count", null);
items.add(map);
}
for(int i=10;i<15;i++) {
Map<String,Object> map = new HashMap<>();
map.put("time", i*1000);
map.put("count", i*10);
items.add(map);
}
return items;
} public static void main(String[] args) {
// 构造数据
List<Map<String, Object>> items = buildList(); List<Map<String, Object>> list = new ArrayList<>();
boolean isStop = false;// 记录容器
for (int i = 0; i < items.size(); i++) {
boolean flag = items.get(i).get("count") == null;
if (i == 0) {
Map<String, Object> map = new HashMap<>();
if (flag) {
map.put("stop", items.get(i).get("time"));
isStop = true;
} else {
map.put("recover", items.get(i).get("time"));
}
list.add(map);
continue;
}
if (isStop == flag) {
// 没有变化
} else {
isStop = flag;
Map<String, Object> map = new HashMap<>();
if (!flag) {
// 上次是true,本次是false
map.put("recover", items.get(i).get("time"));
} else {
// 上次是false本次是true
map.put("stop", items.get(i).get("time"));
}
list.add(map);
}
}
System.out.println(list);
} }

3.运行main方法结果

[{recover=0}, {stop=5000}, {recover=10000}]

java 记录数据持续变化时间的更多相关文章

  1. navicat查看mysql数据表记录数不断变化

    在使用navicat进行数据库管理的时候,在查看表对象的时候会发现,每次刷新,数据表的记录数不断变化,尤其是大表. 对于100万的数据经常会显示九十几万,当然通过count(*)出来的数据是正确的. ...

  2. java记录CST时间类型的字符串转换问题

    下列代码可以实现把Java的CST格式的时间字符串转为为Date对象和所需要的日期时间格式! String dateStr = "Wed Sep 16 11:26:23 CST 2009&q ...

  3. 撰写一篇博客要求讲述四则运算2的设计思想,源程序代码、运行结果截图、编程总结分析,并按照PSP0级的要求记录开发过程中的时间记录日志。

    一.撰写一篇博客要求讲述四则运算2的设计思想,源程序代码.运行结果截图.编程总结分析,并按照PSP0级的要求记录开发过程中的时间记录日志. 1.设计思想: ①创建test.jsp建立第一个前端界面,提 ...

  4. Java导出数据行写入到Excel表格:基于Apache POI

    Java导出数据行写入到Excel表格:基于Apache POI import java.io.File; import java.io.FileOutputStream; import org.ap ...

  5. Mybaitis-generator生成数据对象和时间的优化

    1.本章涉及到知识点,Mybaitis-generator生成数据对象和时间,xml的引用*.properties 外部文件(在这之前必须导入了mybaitis的核心架包) A.在pom.xml的案例 ...

  6. 为什么Java大数据能带你走上人生巅峰

    国内大多数大型互联网公司的程序员被称作研发工程师,但实际上国内几乎没有研发项目,只能叫做开发. 开发程序员的工作大多是重复性劳动,容易产生疲惫感,薪资在工作2-5年内就达到了一个峰值,再要提升就比较困 ...

  7. Canal的简单使用(监控数据库数据的变化)

    原文:https://www.cnblogs.com/java-spring/p/8930740.html canal可以用来监控数据库数据的变化,从而获得新增数据,或者修改的数据,用于实际工作中,比 ...

  8. 黎活明8天快速掌握android视频教程--21_监听ContentProvider中数据的变化

    采用ContentProvider除了可以让其他应用访问当前的app的数据之外,还有可以实现当app的数据发送变化的时候,通知注册了数据变化通知的调用者 其他所有的代码都和第20讲的一样,不同的地方看 ...

  9. java中获取日期和时间的方法总结

    1.获取当前时间,和某个时间进行比较.此时主要拿long型的时间值. 方法如下:  要使用 java.util.Date .获取当前时间的代码如下 Date date = new Date(); da ...

随机推荐

  1. 双向数据绑定 v-model

    双向数据绑定 就是既可以从页面传到数据也可以从数据到页面 初始运行结果为: 在输入框 更改数据 相应的输入框上的也会相对改变 然后再试试利用控制台更改数据 可以看到数据也被改变了 而且输入框中的内容也 ...

  2. RocketMQ源码分析 broker启动,commitlog、consumequeue、indexfile、MappedFileQueue、MappedFile之间的关系以及位置说明

    目录 1.MappedFile类属性说明 1.1.MappedFile类属性如下 1.2.MappedFile构造器说明 2.MappedFileQueue类说明 2.1.属性说明 2.2.Mappe ...

  3. 数字crawlergo动态爬虫结合长亭XRAY被动扫描

    群里师傅分享了个挖洞的视频,搜了一下,大概就是基于这篇文章录的 https://xz.aliyun.com/t/7047 (小声哔哔一下,不得不说,阿里云先知社区和360酒仙桥六号部队公众号这两个地方 ...

  4. 版本控制比较cvs,svn,git

    版本控制比较cvs,svn,git 几个重要概念: 版本库模型(Repository model):描述了多个源码版本库副本间的关系,有客户端/服务器和分布式两种模式.在客户端/服务器模式下,每一用户 ...

  5. Error:java: JDK isn't specified for module 'xxx'异常的解决方法

    问题描述 博主启动的项目的时候出现了一个这样的异常 解决方法 打开左上角这个Project Structure

  6. 读取pdf中的内容

    import com.spire.pdf.PdfDocument;import com.spire.pdf.PdfPageBase;import java.io.*; public class Ext ...

  7. springboot日志输出到文件

    今天来谈一谈日志,主要是说一说springboot的日志,因为最近在学习springboot.首先在写代码的时候,要养成记日志的习惯,这点真的很重要,因为之前吃了很多亏.过去我对日志很不在意,该有的日 ...

  8. FileZilla使用教程

    FileZilla使用教程和问题汇总 正式开始之前我还是想闲聊几句,毕竟调试解决这些问题,整整耗了我一天半的时间.前不久学校要求上交一个web大作业,然后我们宿舍就寻思光做出来前后端搞头不大,不如整个 ...

  9. springboot 发布 war jar区别

    fatjar 看下springboot打成jar包后的结构和内容: springboot项目打包的jar 普通jar: 传统jar 通过上面两个图的对比,我们知道这个JAR包与传统JAR包的不同之处在 ...

  10. reactor模式:多线程的reactor模式

    上文说到单线程的reactor模式 reactor模式:单线程的reactor模式 单线程的reactor模式并没有解决IO和CPU处理速度不匹配问题,所以多线程的reactor模式引入线程池的概念, ...