本篇文章為大家展示了使用java如何獲取指定時間段的值,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
10年積累的做網(wǎng)站、成都網(wǎng)站設(shè)計經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有加格達奇免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。直接上代碼
測試類
public class TestData { public static void main(String[] args) { Listlist = new ArrayList<>(); list.add(new TsData("11","08",11111l)); list.add(new TsData("11","080405",22222l)); list.add(new TsData("11","09070802",33333l)); list.add(new TsData("11","09234567",44444l)); list.add(new TsData("11","9867342",55555l)); list.add(new TsData("11","08607342",55555l)); list.add(new TsData("11","08607342",555556l)); list.add(new TsData("11","dad8607342",5555567l)); System.out.println(doCalculateActionTime(list,"08")+" uiui"); } public static List doCalculateActionTime(List tsData, String action) { //step1:按照兩位一個分解動作代碼 //step2:找到動作代碼總包含action代碼的時間,找到第一次出現(xiàn)的時間和最后一次出現(xiàn)的時間 List actionTime = new ArrayList<>(); if (CollectionUtils.isEmpty(tsData)) { return actionTime; } //是不是第一次出現(xiàn) boolean isFirst = true; //是不是已經(jīng)出現(xiàn)過 boolean isAppear = false; ActionTime record = new ActionTime(); for (TsData data : tsData) { if (null == data.getTimestamp() || StringUtils.isEmpty(data.getValue())) { continue; } List actions = ProjectStringUtil.getStrList(data.getValue(), 2); System.out.println(actions+" actions"); //第一次出現(xiàn),則記錄時間,最后一次出現(xiàn)也記錄時間 if (actions.contains(action)) { if (isFirst) { //記錄開始時間 record = new ActionTime(); record.setStartTime(data.getTimestamp()); //設(shè)置標(biāo)志位 isFirst = false; isAppear = true; } } else { //判斷前面是否已經(jīng)出現(xiàn)過action if (isAppear) { //記錄結(jié)束時間 record.setEndTime(data.getTimestamp()); actionTime.add(record); //重置標(biāo)志位 isAppear = false; isFirst = true; } } } return actionTime; } }