Удалить из словаря людей по сезонам
public static Map<String, Date> createMap() throws ParseException {
DateFormat dateFormat = new SimpleDateFormat("MMMMM d yyyy", Locale.ENGLISH);
Map<String, Date> map = new HashMap<>();
map.put("Сильвестр Сталлоне", dateFormat.parse("JUL 6 1946"));
map.put("Фиби Тонкин", dateFormat.parse("JUL 12 1989"));
map.put("Эдди Редмэйн", dateFormat.parse("JAN 6 1982"));
map.put("Кен Лоуч", dateFormat.parse("JUN 17 1936"));
map.put("Усэйн Болт", dateFormat.parse("AUG 21 1986"));
map.put("Том Мейган", dateFormat.parse("JAN 11 1981"));
map.put("Энди Гарсиа", dateFormat.parse("APR 12 1956"));
map.put("Лэнс Хенриксен", dateFormat.parse("MAY 5 1940"));
map.put("Эсекьель Гарай", dateFormat.parse("OCT 10 1986"));
map.put("Кэтрин Лэнгфорд", dateFormat.parse("APR 29 1996"));
return map;
}
Ответы (1 шт):
Автор решения: Дмитрий
→ Ссылка
Например, так :
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Locale;
import java.util.Map;
class Main {
public static void main(String[] args) {
int removeSeasonNumber = 1;
Map<String, LocalDate> resul = removeBySeasonNumber(createMap(), removeSeasonNumber);
}
private static Map<String, LocalDate> removeBySeasonNumber(Map<String, LocalDate> dateMap, int removeSeasonNumber) {
int endMonth = 12/4*removeSeasonNumber;
Iterator<Map.Entry<String, LocalDate>> iterator = dateMap.entrySet().iterator();
while (iterator.hasNext()) {
final Map.Entry<String, LocalDate> unit = iterator.next();
int monthNumb = unit.getValue().getMonth().plus(1).getValue();
if (monthNumb<=endMonth && monthNumb>endMonth-3) iterator.remove();
}
return dateMap;
}
private static Map<String, LocalDate> createMap() {
DateTimeFormatter dateFormat = new DateTimeFormatterBuilder()
.parseCaseInsensitive().appendPattern("MMM d yyyy").toFormatter(Locale.ENGLISH);
Map<String, LocalDate> map = new HashMap<>();
map.put("Сильвестр Сталлоне", LocalDate.parse("JUL 6 1946", dateFormat));
map.put("Фиби Тонкин", LocalDate.parse("JUL 12 1989", dateFormat));
map.put("Эдди Редмэйн", LocalDate.parse("JAN 6 1982", dateFormat));
map.put("Кен Лоуч", LocalDate.parse("JUN 17 1936", dateFormat));
map.put("Усэйн Болт", LocalDate.parse("AUG 21 1986", dateFormat));
map.put("Том Мейган", LocalDate.parse("JAN 11 1981", dateFormat));
map.put("Энди Гарсиа", LocalDate.parse("APR 12 1956", dateFormat));
map.put("Лэнс Хенриксен", LocalDate.parse("MAY 5 1940", dateFormat));
map.put("Эсекьель Гарай", LocalDate.parse("OCT 10 1986", dateFormat));
map.put("Кэтрин Лэнгфорд", LocalDate.parse("APR 29 1996", dateFormat));
return map;
}
}