Я новичок в Java 8 и все еще в фазе обучения.Я должен написать следующую логику, используя java 8. У меня есть данные Json Array, и моя структура json такая, как показано ниже.
{"list":[{"core":{"min":281.556,"max":286.67,"top":972.73},"dt":"2017-02-16 12:00:00"},{"core":{"min":281.821,"max":285.66,"top":970.91},"dt":"2017-02-16 15:00:00"},{"core":{"min":274.498,"max":277.05,"top":970.44},"dt":"2017-02-16 18:00:00"},{"core":{"min":271.503,"max":272.78,"top":969.32},"dt":"2017-02-16 21:00:00"}]}
Этот jsonArray будет содержать около 100 jsonObject с данными за каждые 3 часа.Мне действительно нужно найти среднее значение min с max отдельно и среднее значение top отдельно, используя поток Java 8 или другие функции Java 8.Другим критерием является минимальное и максимальное среднее значение должно основываться на день или ночь.если dt содержит как 06:00 или 09:00 или 12:00 или 15:00, это должно быть dayavg (мин + макс для дневного времени), или же оно должно быть средним за ночь ((мин + макс для ночного времени)).Верх не зависит ни от дня, ни от ночи.Любая помощь приветствуется
Ниже приводится логин с использованием Java 7. Нужно это с помощью функций Java 8.
int dayavg=0;
int nightavg = 0;
int topavg=0;
int day=0;
int night = 0;
int top=0;
for(int i=0;i<50;i++){
JsonNode node = list.get(i);
String dt = node.get("dt").textValue();
if(dt.contains("06:00:00")|| dt.contains("09:00:00") || dt.contains("12:00:00") || dt.contains("15:00:00")){
int val = node.get("core").get("min").asInt() + node.get("core").get("max").asInt();
day = day + val;
}
if(dt.contains("18:00:00")|| dt.contains("21:00:00") || dt.contains("00:00:00") || dt.contains("03:00:00")){
int val = node.get("core").get("min").asInt() + node.get("core").get("max").asInt();
night = night + val;
}
int val = node.get("core").get("top").asInt();
top = top + val;
}
topavg = top/50;
dayavg = day/100;
nightavg = night/100;