如何为 graphstream 删除带有 java API 的节点?
How to remove nodes with java API for graphstream?
我目前在我的项目中使用 Graphstream API for Java。
我不想根据命令删除或添加节点。
与 JFrame & co。我初始化了一个控制台,所以我可以插入
"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() 并且不能以这种方式操作它。
谢谢
节点 id 是字符串,它们是不可变的(没有重命名,没有 setId()
)。
现在你在你的例子中所做的是不同的。您正在使用基于索引的节点访问。索引是整数,对应于图中的任意节点,它们与 id 无关。
当您执行 graph.addNode(0)
时,整数将转换为 字符串 "0"
。然后,当您执行 graph.removeNode(0) 时,您将删除一个被索引为节点列表第一个的节点。但它必须是这个 id "0"
.
的节点
只要图中有节点,您就可以删除索引(整数)0 的节点 (graph.removeNode(0)
),但您只能删除一次 ID 为 "0"
的节点 (graph.removeNode("0")
).
我目前在我的项目中使用 Graphstream API for Java。
我不想根据命令删除或添加节点。 与 JFrame & co。我初始化了一个控制台,所以我可以插入 "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() 并且不能以这种方式操作它。
谢谢
节点 id 是字符串,它们是不可变的(没有重命名,没有 setId()
)。
现在你在你的例子中所做的是不同的。您正在使用基于索引的节点访问。索引是整数,对应于图中的任意节点,它们与 id 无关。
当您执行 graph.addNode(0)
时,整数将转换为 字符串 "0"
。然后,当您执行 graph.removeNode(0) 时,您将删除一个被索引为节点列表第一个的节点。但它必须是这个 id "0"
.
只要图中有节点,您就可以删除索引(整数)0 的节点 (graph.removeNode(0)
),但您只能删除一次 ID 为 "0"
的节点 (graph.removeNode("0")
).