У меня есть карта LocalDate
и целое число с ежедневными данными.Теперь я хочу создать новую карту с еженедельными данными, что означает, что новая карта будет содержать совокупное количество, когда мы суммируем целые числа, которые подпадают под предыдущую запись и текущую запись.Я застрял в этом.Может кто-нибудь, пожалуйста, помогите мне в разработке алгоритма для этого.Я новичок в Java Stream API, если это выполнимо с помощью Stream API, он будет
Пример данных:
В изображении, которое я пробовал пересечь WeeklyMap, а затем внутрикоторый прошел дневную карту.Но я не уверен, как сделать это возможным в коде (Java).
РЕДАКТИРОВАТЬ
Фрагмент кода:
Map.Entry<LocalDate, Integer> prevEntry = null;
boolean firstTime = true;
for (Map.Entry<LocalDate, Integer> currEntry : weeklyMap.entrySet()) {
if (firstTime) {
prevEntry = currEntry;
firstTime = false;
if (weeklyMap.containsKey(currEntry.getKey())) {
weeklyMap.put(currEntry.getKey(), currEntry.getValue());
}
} else {
for (Map.Entry<LocalDate, Integer> todayEntry : dailyMap.entrySet()) {
if (prevEntry.getKey().equals(todayEntry.getKey())) {
prevEntry.setValue(todayEntry.getValue());
} else if(todayEntry.getKey().isAfter(prevEntry.getKey()) && todayEntry.getKey().isBefore(currEntry.getKey())) {
currEntry.setValue(currEntry.getValue() + todayEntry.getValue());
}
}
}
}