import java.time.format.DateTimeFormatter;
import java.time.YearMonth;
import java.util.HashMap;
import java.util.Map;
class Main {
public static void main
(String[] args
) { Map
<String, Long
> expectedValues
= new HashMap
<>(); expectedValues.put("2021-06-01", 10L);
expectedValues.put("2021-07-01", 20L);
expectedValues.put("2021-08-01", 30L);
transform(expectedValues);
// Show the map, sorted by date
expectedValues.entrySet().stream()
.
forEach(e
-> System.
out.
println(e.
getKey() + ": " + e.
getValue())); }
static void transform
(Map
<String, Long
> expectedValues
) { YearMonth thisMonth = YearMonth.now();
DateTimeFormatter format = DateTimeFormatter.ISO_LOCAL_DATE;
for (int i = 0; i < 12; i++) {
String prev
= thisMonth.
minusMonths(i
).
atDay(1).
format(format
); if (!expectedValues.containsKey(prev)) {
expectedValues.put(prev, 0L);
}
}
}
}
aW1wb3J0IGphdmEudGltZS5mb3JtYXQuRGF0ZVRpbWVGb3JtYXR0ZXI7CmltcG9ydCBqYXZhLnRpbWUuWWVhck1vbnRoOwppbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CmltcG9ydCBqYXZhLnV0aWwuTWFwOwoKY2xhc3MgTWFpbiB7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CgkJTWFwPFN0cmluZywgTG9uZz4gZXhwZWN0ZWRWYWx1ZXMgPSBuZXcgSGFzaE1hcDw+KCk7CgkJZXhwZWN0ZWRWYWx1ZXMucHV0KCIyMDIxLTA2LTAxIiwgMTBMKTsKCQlleHBlY3RlZFZhbHVlcy5wdXQoIjIwMjEtMDctMDEiLCAyMEwpOwoJCWV4cGVjdGVkVmFsdWVzLnB1dCgiMjAyMS0wOC0wMSIsIDMwTCk7CgkJCgkJdHJhbnNmb3JtKGV4cGVjdGVkVmFsdWVzKTsKCQkKCQkvLyBTaG93IHRoZSBtYXAsIHNvcnRlZCBieSBkYXRlCgkJZXhwZWN0ZWRWYWx1ZXMuZW50cnlTZXQoKS5zdHJlYW0oKQoJCSAgICAuc29ydGVkKE1hcC5FbnRyeS5jb21wYXJpbmdCeUtleSgpKQoJCSAgICAuZm9yRWFjaChlIC0+IFN5c3RlbS5vdXQucHJpbnRsbihlLmdldEtleSgpICsgIjogIiArIGUuZ2V0VmFsdWUoKSkpOwoJfQoJCglzdGF0aWMgdm9pZCB0cmFuc2Zvcm0oTWFwPFN0cmluZywgTG9uZz4gZXhwZWN0ZWRWYWx1ZXMpIHsKCQlZZWFyTW9udGggdGhpc01vbnRoID0gWWVhck1vbnRoLm5vdygpOwoJCURhdGVUaW1lRm9ybWF0dGVyIGZvcm1hdCA9IERhdGVUaW1lRm9ybWF0dGVyLklTT19MT0NBTF9EQVRFOwoJCWZvciAoaW50IGkgPSAwOyBpIDwgMTI7IGkrKykgewoJCSAgICBTdHJpbmcgcHJldiA9IHRoaXNNb250aC5taW51c01vbnRocyhpKS5hdERheSgxKS5mb3JtYXQoZm9ybWF0KTsKCQkgICAgaWYgKCFleHBlY3RlZFZhbHVlcy5jb250YWluc0tleShwcmV2KSkgewoJCSAgICAgICAgZXhwZWN0ZWRWYWx1ZXMucHV0KHByZXYsIDBMKTsKCQkgICAgfQoJCX0KCX0KfQ==