java 记录数据持续变化时间
Posted 郑某人1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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}]
以上是关于java 记录数据持续变化时间的主要内容,如果未能解决你的问题,请参考以下文章
为啥尽管源代码没有变化,但从一个系统到另一个系统的片段数量却有很大差异?
错误记录Android Studio 编译报错 ( Could not determine java version from ‘11.0.8‘. | Android Studio 降级 )(代码片段
错误记录Android Studio 编译报错 ( Could not determine java version from ‘11.0.8‘. | Android Studio 降级 )(代码片段