我正在创建一个应用程序,它接受节点/边输入然后通过Gephi处理它们,然后打印出该图的json数据。在我使用该应用程序后,我想清除所有以前的数据并输入新数据。问题是要打印出图形数据,我必须使用for循环,并且边界存在问题。
我的申请:
例如,如果我有2个图表,则两个图表都有500个节点。我进入第一个。我遍历数字id的
for(int x =0; x< g.NodeCount(); x++)
{
g.getNode(x).NodeData().allThDataINeed;
// g is a DirectedGraph object
}
并且工作正常。数字id应该是0-499。然后我删除所有这些节点并添加500个新节点。并运行新循环。
我的问题: nodeCount仍然等于500,但节点ID从500-999运行。这意味着我的循环不起作用。现在,当我使用此循环时,它引用的节点为空,因此数据为空。我也用边缘做这个,它有同样的问题,但如果我修复节点,相同的解决方案将修复边缘。
我需要什么: 我需要一种方法来重置数字ID。基本上,删除节点0-499后,下一个500节点应该填充那些点,数字ID为0-499而不是500-999。
其他编码位: 清除我的图表我使用代码
g.clear();
在我结束我的应用程序后,我将执行这些过程的类中的所有变量设置为null,包括g,我的图形。然后为了安全起见,将包含类设置为null,然后在我想再次使用它时重新初始化它。仍然没有重新填充这些节点ID。