Разрешить зависимость среди пользовательских объектов
У меня есть List<Object>
и каждый объект имеет целочисленное значение "id" и целое число "зависит" параметр. Этот список затем идет на некоторую обработку, так что объекты, которые не зависят от кого-либо, будут сначала выполнять обработку, а затем - следующая группа объектов.
Я реализовал это с помощью сортировки топологии вместе со списком смежности, который прекрасно справляется со своей задачей, но мне говорят использовать дерево (TreeModel), так как предыдущий подход труден для понимания. Независимые объекты будут на уровне корня, в зависимости от него объект будет его потомком и так далее. Итак, сначала будут идти все объекты на корневом уровне, затем объекты на уровне 2, а затем 3...
Я немного смущен тем, как я буду продолжать реализацию. Я думаю, я бы начал с List<TreeModel<Object>>
Таким образом, каждый индекс представляет дерево, а затем соответственно формирует деревья. И во время синтаксического анализа я сначала проанализирую весь корневой уровень, затем 2-й уровень и затем 3-й. Хотя я думаю, что есть элегантный способ.
Любая подсказка / помощь будет оценена. Благодарю.