Я моделирую подсистему питания на Java. Простая база данных SQLite содержит набор модулей, заменяемых строкой (LRU), и соединений между ними. Я пишу API модели мощности, чтобы упростить запросы к хранилищу данных, используя шаблоны и репозитории DDD.
Я ищу подходящую коллекцию Java для моделирования результатов запроса. В потоке соединений LRU есть несколько особых случаев, которые необходимо смоделировать:
Включение пункта 3 выше заставило меня задуматься о возврате результатов запроса из API в виде дерева. Но единственное дерево, которое я нашел в java.util, - это парное красно-черное дерево TreeMap , которое не кажется подходящим (или я не могу придумать подходящую абстракцию для моделирования мощности. потоки с ним.) Я также рассматривал LinkedHashSet , но я не уверен, что он уместен. Мне не ясно, как узел в этой структуре будет указывать на нисходящие узлы.
На данный момент меня не беспокоит эффективность во времени или пространстве. Мой API просто должен работать, предоставляя информацию о подключении питания внешним клиентам (т. Е. Уровень представления Java-приложения Power Monitoring & Control). Также нет ограничений на использование типов / библиотек данных с открытым исходным кодом.
Говоря языком информатики, я действительно ищу направленный ациклический граф (DAG).
Есть ли реализация этого для Java? Правильно ли я считаю, что группа DAG подходит для моего сценария?