您好,登錄后才能下訂單哦!
這篇文章主要介紹了通過java記錄數(shù)據(jù)持續(xù)變化時間代碼解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
1.需求:獲取count為null和不為null的持續(xù)變化
[{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) { // 構(gòu)造數(shù)據(jù) 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方法結(jié)果
[{recover=0}, {stop=5000}, {recover=10000}]
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。