重新使用 EdgeIterator

Re-use EdgeIterator

如果我理解的很好,一个EdgeIterator只能使用一次。如果这是正确的,为什么我们不能简单地重置它以避免每次我们需要在相同的节点边上循环时创建一个新的 EdgeIterator 实例?

谢谢!

如果您使用 EdgeExplorer,则会重用 EdgeIterator:

// store somewhere
explorer = graph.createEdgeExplorer();

// use somewhere
EdgeIterator iter = explorer.setBaseNode(x);
while(iter) {..}

仍然要非常小心,因为每个线程和每个循环都需要一个 edgeExplorer,例如与一个资源管理器进行双重 for 循环将失败:)