gpt4 book ai didi

java - 如何迭代 Graph 并列出与 org.jgrapht 的所有连接

转载 作者:行者123 更新时间:2023-12-01 19:54:58 25 4
gpt4 key购买 nike

我正在尝试雇用

compile group: 'org.jgrapht', name: 'jgrapht-core', version: '1.1.0'

可视化团队和团队成员之间的关系。

例如:-

“团队一”有成员“团队成员 A”、“团队成员 B”、“团队成员 C”

“第二队”有成员“C 队成员”、“D 队成员”

所以我添加以下顶点

final Graph<Displayable, DefaultEdge> directedGraph = new DefaultDirectedGraph<>(DefaultEdge.class);

directedGraph.addVertex(team_0001);
directedGraph.addVertex(team_0002);
directedGraph.addVertex(teamMember_A);
directedGraph.addVertex(teamMember_B);
directedGraph.addVertex(teamMember_C);
directedGraph.addVertex(teamMember_D);

directedGraph.addEdge(team_0001, teamMember_A);
directedGraph.addEdge(team_0001, teamMember_B);
directedGraph.addEdge(team_0001, teamMember_C);
directedGraph.addEdge(team_0002, teamMember_C);
directedGraph.addEdge(team_0002, teamMember_D);

当我迭代这个图表时,我想要以下输出:-

Team_0001
teamMember_A
teamMember_B
teamMember_C

Team_0002
teamMember_C
teamMember_D

我怎样才能实现这个目标?

我必须开发客户图迭代器吗?

最佳答案

根据定义,您的图是二分图:{分区 1=团队顶点,分区 2=玩家顶点}。

因此,只需维护团队顶点列表,并为每个顶点调用 Graphs.neighborListOf(.) :


List<Displayable> teams=...;
for(Displayable v : teams)
System.out.println("Team"+v+" has the following members: "+Graphs.neighborListOf(teamGraph,v);

或者,由于您的图是有向的,您可以迭代边缘:


for(DefaultEdge e : teamGraph.edgeSet())
System.out.println(String.format("Player %s belongs to team %s",teamGraph.getEdgeTarget(e), teamGraph.getEdgeSource(e)));

关于java - 如何迭代 Graph 并列出与 org.jgrapht 的所有连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49925435/

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