From 29c415ef1c043cb1b9bcc434008bd805674778d2 Mon Sep 17 00:00:00 2001 From: 于紫祥_1901 <email@yuzixiang_1910> Date: Wed, 02 Dec 2020 11:34:13 +0800 Subject: [PATCH] update --- src/main/java/com/moral/util/AQICalculation2.java | 40 +++++++++++++++++++--------------------- 1 files changed, 19 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/moral/util/AQICalculation2.java b/src/main/java/com/moral/util/AQICalculation2.java index bc009b0..3f62277 100644 --- a/src/main/java/com/moral/util/AQICalculation2.java +++ b/src/main/java/com/moral/util/AQICalculation2.java @@ -5,7 +5,7 @@ public class AQICalculation2 { public static Map<String, Object> hourlyAQI(Map<String, Object> map){ - List<Double> AQIList = new ArrayList<>(); + Map<String,Double> AQIMap = new HashMap<>(); Map maxMap = new HashMap(); for (Map.Entry<String, Object> entry : map.entrySet()) { String key = entry.getKey(); @@ -28,38 +28,37 @@ switch (key) { case "PM2_5":PM2_5AQI = PM2_5AQI(value); - AQIList.add(PM2_5AQI); + AQIMap.put("PM2_5",PM2_5AQI); break; case "PM10":PM10AQI = PM10AQI(value); - AQIList.add(PM10AQI); + AQIMap.put("PM10",PM10AQI); break; case "SO2":SO2AQI = SO2AQI(value); - AQIList.add(SO2AQI); + AQIMap.put("SO2",SO2AQI); break; case "NO2":NO2AQI = NO2AQI(value); - AQIList.add(NO2AQI); + AQIMap.put("NO2",NO2AQI); break; case "CO":COAQI = COAQI(value); - AQIList.add(COAQI); + AQIMap.put("CO",COAQI); break; case "maxO3_8h":O3AQI = O3AQI(value); - AQIList.add(O3AQI); + AQIMap.put("maxO3_8h",O3AQI); break; default: break; } } Map<String, Object> returnMap = new HashMap<>(); - Double AQIMAX = Collections.max(AQIList); - Optional<Map.Entry<String, Integer>> max0 = maxMap.entrySet() + Optional<Map.Entry<String, Double>> max0 = AQIMap.entrySet() .stream() .max(Map.Entry.comparingByValue()); returnMap.put("maxSensor", max0.get().getKey()); - returnMap.put("AQI", new Double(Math.floor(Math.round(AQIMAX+0.5))).intValue()); + returnMap.put("AQI", new Double(Math.floor(Math.round(max0.get().getValue()+0.5))).intValue()); return returnMap; } public static Map<String, Object> dayAQI(Map<String, Object> map){ - List<Double> AQIList = new ArrayList<>(); + Map<String,Double> AQIMap = new HashMap<>(); Map maxMap = new HashMap(); for (Map.Entry<String, Object> entry : map.entrySet()) { String key = entry.getKey(); @@ -80,35 +79,34 @@ Double maxO38hAQI; switch (key) { case "PM2_5":PM2_5AQI = PM2_5AQI(value); - AQIList.add(PM2_5AQI); + AQIMap.put("PM2_5",PM2_5AQI); break; case "PM10":PM10AQI = PM10AQI(value); - AQIList.add(PM10AQI); + AQIMap.put("PM10",PM10AQI); break; case "SO2":SO2AQI = SO2DayAQI(value); - AQIList.add(SO2AQI); + AQIMap.put("SO2",SO2AQI); break; case "NO2":NO2AQI = NO2DayAQI(value); - AQIList.add(NO2AQI); + AQIMap.put("NO2",NO2AQI); break; case "CO":COAQI = CODayAQI(value); - AQIList.add(COAQI); + AQIMap.put("CO",COAQI); break; case "maxO3_8h":maxO38hAQI = O3DayAQI(value); - AQIList.add(maxO38hAQI); + AQIMap.put("maxO3_8h",maxO38hAQI); break; default: break; } } Map<String, Object> returnMap = new HashMap<>(); - if (AQIList.size()>0){ - Double AQIMAX = Collections.max(AQIList); - Optional<Map.Entry<String, Integer>> max0 = maxMap.entrySet() + if (AQIMap.size()>0){ + Optional<Map.Entry<String, Double>> max0 = AQIMap.entrySet() .stream() .max(Map.Entry.comparingByValue()); returnMap.put("maxSensor",max0.get().getKey()); - returnMap.put("AQI", new Double(Math.floor(Math.round(AQIMAX+0.5))).intValue()); + returnMap.put("AQI", new Double(Math.floor(Math.round(max0.get().getValue()+0.5))).intValue()); }else { returnMap.put("maxSensor",""); returnMap.put("AQI", ""); -- Gitblit v1.8.0