gpt4 book ai didi

java - JUNG库可以根据预定义的属性制作边吗?

转载 作者:行者123 更新时间:2023-12-02 09:50:27 25 4
gpt4 key购买 nike

我有一些类型为 Person 的数据。此人具有电话号码属性,但也具有主叫和被叫电话号码属性。

class Person {
String id;
String displayName;
String phoneNr;
String callingNr; // or List<String> callingNrs;
String calledNr; // or List<String> calledNrs;
}

我想要的是将一堆 Person 对象放入 Graph 实例中,然后在 View 上呈现关系。理想情况下,在 View 上绘制的组件是交互式的,这意味着您可以单击突出显示边缘(也许更多)的节点/顶点。

我尝试了 JUNG,但在文档中,我看到了一些示例,我必须自己定义 Person 对象之间的关系,如下所示:

Graph.addEdge("edge-name", personA.phoneNr, personB.phoneNr);

我对 JUNG 很陌生,但也许有一种方法可以告诉 JUNG Person 的属性,并且 JUNG 知道如何连接它们?

JUNG 可以做到这一点吗?或者我是否需要另一种类型的图书馆,如果是的话,有人可以为我提供一个我可以使用的图书馆吗?

最佳答案

这是我要做的:

将每个人的电话号码(键)创建一个 java.util.Map 到 Person 的实例(值)。这就是你的反向号码查找。使用 PhoneNr 作为键并使用 Person 实例作为值来迭代人员集合,从而填充反向号码查找映射。

接下来,我将创建一个边缘类“PhoneCall”,其中包含“通话时间”和“通话持续时间”等信息(或多或少的信息,取决于您可用的信息)。

要向图表添加边,请迭代 Person 实例的集合,并针对每个 Person,迭代主叫号码的集合。对于每个主叫号码,使用反向号码查找映射来获取调用者,并创建有向边将调用者连接到当前人。对每个人的被叫号码集合执行类似的操作。您的图形节点将是 Person 实例,您的边将是将一个 Person 连接到另一个 Person 的 PhoneCall 实例。请务必将 equals 和 hashCode 方法添加到您的 Person 类和 PhoneCall 类中,以便它们能够正常工作(并且将检测到重复项并希望将其忽略)。

希望这有帮助!

关于java - JUNG库可以根据预定义的属性制作边吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56355296/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com