gpt4 book ai didi

java - JGraphX - 获取单元格的所有目标单元格

转载 作者:行者123 更新时间:2023-12-01 10:14:56 25 4
gpt4 key购买 nike

所以,我已经成功地纯粹使用 JGraphX 可视化了一个图。现在,我想创建一个邻接矩阵。我能想到的一种方法是获取特定细胞目标(或指向)的所有细胞以及它的所有父细胞。但是,我似乎无法从文档中找到合适的 JGraphX 方法来使用。

实际上有 JGraphX 方法吗?否则,您是否可以建议其他替代方法或途径?

谢谢。

我已经想出办法了。但我会留下这个问题,以防其他人需要。

我的方法:我创建了两个 ArrayList:matrixListFrom 和matrixListTo。每次连接边时,我都会将顶点一的标签添加到matrixFrom,将顶点二的标签添加到matrixTo。然后我将它与这个方法关联起来:

public int createAdjacencyMatrix(int adMatrix,  String strFromVertex,  String strToVertex)
{
for(int k = 0;k<matrixListFrom.size();++k)
{
if((matrixListFrom.get(k)).equals(strFromVertex) && (matrixListTo.get(k)).equals(strToVertex))
{
adMatrix = 1;
break;
}
else if((matrixListFrom.get(k)).equals(strToVertex) && (matrixListTo.get(k)).equals(strFromVertex))
{
adMatrix = -1;
for(int j = 0;j<matrixListFrom.size();++j)
{
if((matrixListFrom.get(j)).equals(strFromVertex) && (matrixListTo.get(j)).equals(strToVertex))
{
adMatrix = 1;
break;
}
}
break;
}
else if(!(matrixListFrom.get(k)).equals(strFromVertex) && !(matrixListTo.get(k)).equals(strToVertex))
{
adMatrix = 0;
}

else if(strFromVertex.equals(strToVertex))
{
adMatrix = 0;
break;
}

else
{
adMatrix = 0;
}
}

return adMatrix;
}

假设我们有顶点 A、B、C、D、E 存储在 ArrayList 中,命名为 vertices

matrixListFrom 由 {A, C, D E} 组成MatrixListTo 由 {D, E, C, B} 组成

这意味着 A -->D, C -->E, D -->C, E-->B

因此,使用该方法,可以一一检查这两个列表的内容。strFromVertex 等于第 0 列中的顶点,strToVertex 是要使用 for 循环与后续列进行比较的相应顶点。然后,使用两个矩阵列表,检查strFromVertex和strToVertex是否分别等于matrixListFrom和matrixListTo。如果它们完全相等,则返回 1,如果它们相反相等(第二个 if),则返回 -1(这意味着第 0 列中的顶点是终端而不是源),如果根本没有连接,则返回 0。

但是我认为该方法并不是很有效,尤其是在删除顶点时。但不知何故,我设法让它发挥作用。

最佳答案

据我所知,JGraphX 没有内置选项,但您可以使用这个简单的方法:

public static Set<mxICell> getTargetCells(mxICell input)
{
if(input == null)
return Collections.emptySet();
int count = input.getEdgeCount();
Set<mxICell> result = new HashSet<mxICell>(count, 1);
for(int i = 0; i < count; i++)
{
mxICell tmp = input.getEdgeAt(i);
if(tmp instanceof mxCell && ((mxCell)tmp).getSource() == input)
{
result.add(tmp);
}
}
return result;
}

关于java - JGraphX - 获取单元格的所有目标单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35955742/

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