Во-первых, вам нужно пересмотреть структуру данных, Instance
класс.Из приведенного вами примера видно, что вы пытаетесь создать древовидную структуру данных, в которой узел может иметь несколько дочерних элементов.Вам необходимо спроектировать свой класс Instance
, который может обрабатывать несколько дочерних элементов в узле.Попробуйте использовать список экземпляров для обработки дочерних элементов.
Ваш класс будет выглядеть так:
class Instance {
private String name;
private String description;
private int type;
List<Instance> children;
}
Попробуйте разбить входную строку и выполнить итерацию по каждой подстроке, проверьте, есть ли у вас объект Instance
с именем.Если нет, вы создадите новый объект Instance
.Предыдущий элемент из вашей разделенной строки необходимо изменить, чтобы добавить текущий узел в качестве его дочернего элемента.
Например, если вы разбили "A/B/C"
и выполните итерации по нему.
Для A
, Первый элемент - так что это корень, проверьте, создан ли Instance
объект для A
, если нет, то создайте A
.Сохраните A
в переменной temp
, чтобы изменить A
позже.
Для B
, temp
содержит ссылку A
, проверьте, создан ли объект Instance
для B
, если нет, то создайте B
.Измените temp
s children
, чтобы добавить B
в список, пусть temp
содержит ссылку B
Для C
, temp
содержит ссылку B
,проверьте, создан ли Instance
объект для C
, если нет, то создайте C
.Измените temp
children
, чтобы добавить C
в список, пусть temp
содержит ссылку C
.