Advertisement
Guest User

Untitled

a guest
Jan 28th, 2020
251
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.80 KB | None | 0 0
  1. В организации было решено ввести справочник подразделений. Коды подразделений представлены в виде массива строк вида:
  2.  
  3. "K1/SK1"
  4.  
  5. "K1/SK2"
  6.  
  7. "K1/SK1/SSK1"
  8.  
  9. "K1/SK1/SSK2"
  10.  
  11. "K2"
  12.  
  13. "K2/SK1/SSK1"
  14.  
  15. "K2/SK1/SSK2"
  16.  
  17. , где каждая строка имеет следующую структуру: каждая строка включает в себя код данного подразделения, а также все коды подразделений, которые включают в свою структуру данное подразделение (к примеру департамент K1 включает в себя службу SK1, включающую в себя отдел SSK1). Подразделения в одной строке разделены знаком "/". Возможны случаи, когда в массиве отсутствуют строки с кодом вышестоящего подразделения (в показанном выше массиве есть строки с подразделением K1, но данный код подразделения не представлен отдельной строкой "K1", аналогичный случай с кодом "K2/SK1"), в таком случае необходимо добавить строку с кодом данного подразделения и учитывать ее при сортировке.
  18.  
  19. Необходимо разработать класс, который будет добавлять пропущенные подразделения, а также производить сортировку подразделений.
  20.  
  21.  
  22. ак же в задаче требуется реализовать возможность сортировки массива кодов подразделений по возрастанию и убыванию, при которых сохранялась бы иерархическая структура (показано далее в примерах сортировки), т.к. отсортированный массив используется для отображения категорий пользователю. Отсортированный тестовый массив должен иметь вид:
  23.  
  24. Сортировка по возрастанию:
  25.  
  26. "K1"
  27.  
  28. "K1/SK1"
  29.  
  30. "K1/SK1/SSK1"
  31.  
  32. "K1/SK1/SSK2"
  33.  
  34. "K1/SK2"
  35.  
  36. "K2"
  37.  
  38. "K2/SK1"
  39.  
  40. "K2/SK1/SSK1"
  41.  
  42. "K2/SK1/SSK2"
  43.  
  44. Эта классическая сортировка по возрастанию - Comparator.naturalOrder().
  45.  
  46. Сортировка по убыванию:
  47.  
  48. "K2"
  49.  
  50. "K2/SK1"
  51.  
  52. "K2/SK1/SSK2"
  53.  
  54. "K2/SK1/SSK1"
  55.  
  56. "K1"
  57.  
  58. "K1/SK2"
  59.  
  60. "K1/SK1"
  61.  
  62. "K1/SK1/SSK2"
  63.  
  64. "K1/SK1/SSK1"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement