如何使用java API为graphstream删除节点?

时间:2018-06-13 19:30:30

标签: java nodes graphstream

我目前在项目中使用Graphstream API for Java。

我不想在命令中删除或添加节点。 使用JFrame&合。我初始化了一个控制台,所以我可以插入 “addNode()”或“removeNode(id)”以获得结果。

接口显示节点旁边有一个数字(ID)。

当我删除一个节点时,我希望所有ID较高的节点都更改其ID, 但我没想办法改变一个节点的ID。

F.e。我有:

    graph.addNode(0);
    graph.addNode(1);
    graph.addNode(2);

删除节点时:

    graph.removeNode(0);

我希望将1,2更改为0,1而不重新初始化完整的图形。

有没有办法实现这种行为?我想到了类似的东西:

    graph.getNode(1).setID(0);

不幸的是我只能访问.getID()并且无法以这种方式操作它。

由于

1 个答案:

答案 0 :(得分:0)

节点ids是字符串,它们是不可变的(没有重命名,没有setId())。

现在你在你的例子中所做的是不同的。您正在使用基于索引的节点访问。指数是整数,对应于图中的任意节点,它们与ids没有关联。

当您执行graph.addNode(0)时,整数将转换为字符串 "0"。然后,当您执行graph.removeNode(0)时,您将删除被索引为节点列表的第一个节点。但它必须是此标识为"0"的节点。

只要图表中有节点(graph.removeNode(0)),您就可以删除索引(整数)为0的节点,但只能删除标识为"0"的一个节点({{1} })。