我必须创建一个具有自定义节点类型的图,并且节点和连接从txt文件中一一读取。
文件格式是这样的:startNode attibutes endNode。
每次读一行,我都会创建 2 个节点对象:startNode 和 endNode。并在它们之间添加边缘..
但是,startNode 可能存在于多行中..
例如V1 ... V2 ; V1 ... V3
因此,在添加边之前,我必须检查我的图形是否包含该节点..并且我应该使用图形中的顶点而不是新创建的节点..
jung 有没有内置的方法来解决这个问题? 或者有什么建议吗?
最佳答案
简短的回答是:根据契约(Contract),JUNG 的图形实现会为您处理这个问题,只要您的自定义节点/边缘对象的 equals()
实现和hashCode()
做正确的事。
如果您尝试向图形添加顶点并且该顶点已存在于图形中,则addVertex()
方法将返回 false(意思是“什么也没做”),就像类似的 add()
一样。 Set
中的方法.
另请注意 addEdge()
方法将为您将连接的顶点添加到图中(如果它们尚不存在)。
关于JUNG - 如何获取图中的确切顶点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1960790/