通过java记录数据持续变化时间代码解析
程序员文章站
2022-05-20 17:24:47
这篇文章主要介绍了通过java记录数据持续变化时间代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
1.需求:获取count...
这篇文章主要介绍了通过java记录数据持续变化时间代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
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}]
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。