当前位置: 首页 > 面试题库 >

Java中是否存在有向无环图(DAG)数据类型,我应该使用它吗?

苍恩
2023-03-14
问题内容

我正在用Java建模电源子系统。一个简单的SQLite数据库包含一组行可替换单元(LRU)以及它们之间的连接。我正在编写Power Model
API,以使用DDD模式和存储库简化数据存储的查询。

我正在寻找合适的Java集合来对查询结果进行建模。LRU连接流中有一些特殊情况需要建模:

  1. 最初,有一个具有多个端口(<= 16)的配电单元(PDU),用于向下游LRU供电。
  2. 功率流中的典型连接包括单个电源LRU(电源在此发出)和单个漏极LRU(电源在此被消耗)。
  3. 但是,在下游可能有一个单源LRU连接到多个宿LRU。
  4. 动力流中没有循环。

上面#3的包含使我考虑将API作为树返回查询结果。但是我在java.util中发现的唯一一棵树是一个TreeMap键值对成对的红黑树,这似乎不合适(或者我想不出用它来对电源流进行建模的合适抽象。)我也一直在考虑LinkedHashSet,但我也不认为这是适当的。我不清楚这种结构中的节点如何指向下游节点。

我现在不关心时间或空间的效率。我的API仅需通过向外部客户端(例如,基于Java的Power
Monitoring&Control应用程序的表示层)提供电源连接信息来工作。对开放源数据类型/库的使用也没有任何限制。

用一般的计算机科学术语来说,我真正想要的是有向无环图(DAG)。

有针对Java的实现吗?我是否正确认为DAG适合我的情况?


问题答案:

对于这个特殊的问题。我决定使用Guava的LinkedListMultimap。



 类似资料:
  • 问题内容: 您是否建议使用日期时间或时间戳字段?为什么(使用MySQL)? 我正在服务器端使用PHP。 问题答案: MySQL中的时间戳通常用于跟踪记录的更改,并且通常在每次更改记录时进行更新。如果要存储特定值,则应使用datetime字段。 如果您想在使用UNIX时间戳还是本机MySQL日期时间字段之间做出选择,请采用本机格式。您可以通过这种方式在MySQL中进行计算, 并且如果要使用PHP对记

  • 我有一些有向无环图。我想找出中的两个顶点之间是否存在路径。 我想,我需要存储信息,两个节点之间存在多少路径。但我没有提出完整的算法。

  • 问题内容: 在将变量插入Java中的数据库之前,建议使用哪种转义变量的方法? 据我了解,我可以使用PreparedStatement.setString()来转义数据,但是,如果我不打算再次运行相同的查询,则PreparedStatement似乎不切实际。.是否有一种更好的方式来做而不准备每个查询? 问题答案: 是的,对所有内容使用准备好的语句。 他们被解析一次。 他们不受SQL注入攻击的影响。

  • 问题内容: 给定包含具有 品牌 属性的文档的索引,我们需要创建不区分大小写的术语聚合。 索引定义 请注意,使用 fielddata 数据 询问 结果 如果使用而不是,由于机壳的差异,我们最终要为纽约喷气机找到2个水桶。 我们担心使用字段数据会影响性能。但是,如果禁用了fielddata,我们将得到可怕的 “默认情况下在文本字段上禁用Fielddata”。 还有其他解决此问题的技巧-还是我们不应该太

  • 问题内容: 我读过我应该用 钱 ,但是在当今快节奏的世界里,现在也许已经过时了。 我应该使用什么? 问题答案: 不,钱应该还是可以的。