valerielashvili

Registered Users by Kalin with Object

Jul 22nd, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import java.time.LocalDate;
  2. import java.time.format.DateTimeFormatter;
  3. import java.util.ArrayList;
  4. import java.util.Scanner;
  5.  
  6. public class Task {
  7.     public static void main(String[] args) {
  8.         Scanner scanner = new Scanner(System.in);
  9.         String inputLine = scanner.nextLine();
  10.  
  11.         ArrayList<Person> people = new ArrayList<>();
  12.  
  13.         while (!"end".equals(inputLine)) {
  14.             String[] tokens = inputLine.split(" -> ");
  15.             Person person = new Person(tokens[0], tokens[1]);
  16.            
  17.             people.add(person);
  18.            
  19.             inputLine = scanner.nextLine();
  20.         }
  21.  
  22.         people.stream()
  23.                 .sorted((a, b) -> {
  24.                     if (a.getDate().compareTo(b.getDate()) == 0) {
  25.                         return -1;
  26.                     }
  27.                     return a.getDate().compareTo(b.getDate());
  28.                 })
  29.                 .limit(5)
  30.                 .sorted((a, b) -> b.getDate().compareTo(a.getDate()))
  31.                 .forEach(e -> {
  32.                     System.out.println(e.getName());
  33.                 });
  34.  
  35.  
  36.     }
  37.  
  38.    
  39. }
  40.  
  41. class Person {
  42.     private String name;
  43.     private LocalDate date;
  44.  
  45.     public Person(String name, String date) {
  46.         this.name = name;
  47.         setDate(date);
  48.     }
  49.  
  50.     public String getName() {
  51.         return name;
  52.     }
  53.  
  54.     public LocalDate getDate() {
  55.         return date;
  56.     }
  57.  
  58.     private void setDate(String date) {
  59.         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyy");
  60.         this.date = LocalDate.parse(date, formatter);
  61.     }
  62.  
  63. }
Add Comment
Please, Sign In to add comment