Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.time.LocalDate;
- import java.time.format.DateTimeFormatter;
- import java.util.LinkedHashMap;
- import java.util.Map;
- import java.util.Scanner;
- import java.util.stream.Collectors;
- public class p01_Registered_Users {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- String inputLine = scanner.nextLine();
- LinkedHashMap<String, LocalDate> registeredUsers = new LinkedHashMap<>();
- while (!"end".equals(inputLine)) {
- String[] tokens = inputLine.split(" -> ");
- String name = tokens[0];
- LocalDate parsedDate = parseDate(tokens[1]);
- registeredUsers.put(name, parsedDate);
- inputLine = scanner.nextLine();
- }
- LinkedHashMap<String, LocalDate> orderedData = new LinkedHashMap<>(registeredUsers.entrySet().stream()
- .sorted((a, b) -> {
- int test = a.getValue().compareTo(b.getValue());
- if (test == 0) {
- return -1;
- } else {
- return a.getValue().compareTo(b.getValue());
- }
- })
- .limit(5)
- .sorted((a, b) -> a.getValue().compareTo(b.getValue()))
- .collect(Collectors.toMap(Map.Entry<String, LocalDate>::getKey,
- Map.Entry<String, LocalDate>::getValue)));
- for (Map.Entry<String, LocalDate> orderedDataEntry : orderedData.entrySet()) {
- String name = orderedDataEntry.getKey();
- System.out.printf("%s\n", name);
- }
- }
- private static LocalDate parseDate(String dateInput) {
- // Creating DateTimeFormatter to parse a date from a string using our custom pattern.
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyy");
- LocalDate date = LocalDate.parse(dateInput, formatter);
- return date;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment