Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

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

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

“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 в 09:41.
spiri вне форума   Ответить с цитированием
Старый 08.09.2018, 01:21   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 24,613
Репутация: 5352
По умолчанию

Цитата:
Сообщение от 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 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


10:43.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru