Advertisement
PasteManArs

Untitled

Mar 20th, 2023
507
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.27 KB | None | 0 0
  1. public static Map<Integer, List<Human>> ageDisplay(Set<Human>humanSet) // задание 10
  2.     {
  3.         Map<Integer, List<Human>> result = new TreeMap<>();
  4.         List<Human> ageList = new ArrayList<>();
  5.         for(Human value: humanSet)
  6.         {
  7.             if(result.containsKey(value.getAge()))
  8.             {
  9.                 ageList.addAll(result.get(value.getAge()));
  10.                 ageList.add(value);
  11.                 result.put(value.getAge(), new ArrayList<>(ageList));
  12.                 ageList.clear();
  13.             }
  14.             else
  15.             {
  16.                 result.put(value.getAge(), new ArrayList<>(Arrays.asList(value)));
  17.             }
  18.         }
  19.         return result;
  20.     }
  21.     public static Map<Integer, Map<Character, List<Human>>> superDisplay(Set<Human>humanSet) //задание 11
  22.     {
  23.  
  24.         Map<Integer, Map<Character, List<Human>>> ageAlphabeticalMap = new HashMap<>();
  25.         Map<Character, List<Human>> alphabeticalMap = new TreeMap<>();
  26.         Map<Integer, List<Human>> listMap = new TreeMap<>(ageDisplay(humanSet));
  27.         List<Human> ageList = new ArrayList<>();
  28.         for(Map.Entry<Integer, List<Human>> entry : listMap.entrySet())
  29.         {
  30.             for(Human value : entry.getValue())
  31.             {
  32.                 if(alphabeticalMap.containsKey(value.getSurname().charAt(0)))
  33.                 {
  34.                     ageList = alphabeticalMap.get(value.getSurname().charAt(0));
  35.                     ageList.add(value);
  36.                     Collections.sort(ageList, new Comparator<Human>() {
  37.                         @Override
  38.                         public int compare(Human a, Human b) {
  39.                             return a.getSurname().compareTo(b.getSurname());
  40.                         }
  41.                     });
  42.                     alphabeticalMap.put(value.getSurname().charAt(0), new ArrayList<>(ageList));
  43.                     ageList.clear();
  44.                 }
  45.                 else
  46.                 {
  47.                     alphabeticalMap.put(value.getSurname().charAt(0), new ArrayList<>(Arrays.asList(value)));
  48.                 }
  49.             }
  50.             ageAlphabeticalMap.put(entry.getKey(), new TreeMap<>(alphabeticalMap));
  51.             alphabeticalMap.clear();
  52.         }
  53.         return ageAlphabeticalMap;
  54.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement