Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.09.2018, 22:49   #1
spiri
 
Регистрация: 30.04.2012
Сообщений: 8
По умолчанию Иерархическая сортировка строк

Здравствуйте, подскажите пожалуйста как можно решить данную задачу?

В фирме решили создать справочник отделов. Коды отделов представлены в виде массива строк:

“M1\LM1”

“M1\LM2”

“M1\LM1\LLM1”

“M1\LM1\LLM2”

“M2”

“M2\LM1\LLM1”

“M2\LM1\LLM2”

, где каждая строка имеет следующую структуру: каждая строка включает в себя код данного подразделения, а также все коды подразделений, которые включают в свою структуру данное подразделение (к примеру департамент M1 включает в себя службу LM1, включающую в себя отдел LLM1). Подразделения в одной строке разделены знаком “\”. Возможны случаи, когда в массиве отсутствуют строки с кодом верхнеуровнего подразделения (в показанном выше массиве есть строки с подразделением M1, но данный код подразделения не представлен отдельной строкой “M1”, аналогичный случай с кодом M2\LM1), в таком случае необходимо добавить строку с кодом данного подразделения и учитывать ее при сортировке.

Задача:

Реализовать возможность сортировки массива кодов подразделений по возрастанию и убыванию, при которых сохранялась бы иерархическая структура (показано далее в примерах сортировки), т.к. отсортированный массив используется для отображения категорий пользователю. Отсортированный тестовый массив должен иметь вид:

Сортировка по возрастанию:

“M1”

“M1\LM1”

“M1\LM1\LLM1”

“M1\LM1\LLM2”

“M1\LM2”

“M2”

“M2\LM1”

“M2\LM1\LLM1”

“M2\LM1\LLM2”




Сортировка по убыванию:

“M2”

“M2\LM1”

“M2\LM1\LLM2”

“M2\LM1\LLM1”

“M1”

“M1\LM2”

“M1\LM1”

“M1\LM1\LLM2”

“M1\LM1\LLM1”

Последний раз редактировалось spiri; 08.09.2018 в 08:41.
spiri вне форума Ответить с цитированием
Старый 08.09.2018, 00:21   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от spiri Посмотреть сообщение
Сортировка по возрастанию:

“M1”

“M1\LM1”

“M1\LM1\LLM1”

“M1\LM1\LLM2”

K1\LM2”

“M2”

“M2\LM1”

“M2\LM1\LLM1”

“M2\LM1\LLM2”
опечатка.
явно там должно быть:
Код:
“M1\LM2”
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Иерархическая структура шапок Olesya9771 Фриланс 1 08.12.2017 10:13
Иерархическая база данных Kristas Microsoft Office Access 6 01.04.2013 17:09
Иерархическая группировка Katerinka13 Microsoft Office Excel 12 06.02.2013 10:24