Advertisement
Guest User

Untitled

a guest
Jan 28th, 2022
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.37 KB | None | 0 0
  1. package com.example;
  2.  
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. import org.springframework.boot.SpringApplication;
  5. import org.springframework.web.bind.annotation.*;
  6. import org.springframework.stereotype.Controller;
  7. import org.springframework.ui.Model;
  8.  
  9. import java.util.*;
  10.  
  11. @SpringBootApplication
  12. @Controller
  13. public class App {
  14.     @RequestMapping("/")
  15.     public String index(
  16.             Model model,
  17.             @RequestParam(name = "nameSortBy", required = false) String nameSortBy,
  18.             @RequestParam(name = "ageSortBy", required = false) String ageSortBy,
  19.             @RequestParam(name = "name", required = false) String name,
  20.             @RequestParam(name = "age", required = false) String age
  21.     ) {
  22.         List<Person> persons = new ArrayList<>();
  23.         persons.add(new Person("Alice", 15));
  24.         persons.add(new Person("Bob", 10));
  25.         persons.add(new Person("Eve", 5));
  26.         List<Person> filteredPersons = new ArrayList<>();
  27.         for (Person person : persons) {
  28.             if (!isEmpty(name) && !person.getName().equals(name)) {
  29.                 continue;
  30.             }
  31.             if (!isEmpty(age) && person.getAge() != Integer.parseInt(age)) {
  32.                 continue;
  33.             }
  34.             filteredPersons.add(person);
  35.         }
  36.         Comparator<Person> c;
  37.         c = Comparator.comparing(Person::getName, "desc".equals(nameSortBy) ? Comparator.reverseOrder() : Comparator.naturalOrder());
  38.         c.thenComparing(Person::getAge, "desc".equals(ageSortBy) ? Comparator.reverseOrder() : Comparator.naturalOrder());
  39.         filteredPersons.sort(c);
  40.         model.addAttribute("persons", filteredPersons);
  41.         return "index.html";
  42.     }
  43.  
  44.     public static void main(String[] args) {
  45.         SpringApplication.run(App.class, args);
  46.     }
  47.  
  48.     public class Person {
  49.         private String name;
  50.         private int age;
  51.         public Person() {
  52.         }
  53.         public Person(String name, int age) {
  54.             this.name = name;
  55.             this.age = age;
  56.         }
  57.         public String getName() { return name; }
  58.         public void setName(String name) { this.name = name; }
  59.         public int getAge() { return age; }
  60.         public void setAge(int age) { this.age = age; }
  61.     }
  62.  
  63.     public static boolean isEmpty(String s) {
  64.         return s == null || s.length() == 0;
  65.     }
  66. }
  67.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement