如果我理解得很好,一个 EdgeIterator 只能使用一次。如果这是正确的,为什么我们不能简单地重置它以避免每次我们需要遍历相同的节点边缘时创建一个新的 EdgeIterator 实例?
谢谢!
如果使用 EdgeExplorer,则会重复使用 EdgeIterator:
// store somewhere
explorer = graph.createEdgeExplorer();
// use somewhere
EdgeIterator iter = explorer.setBaseNode(x);
while(iter) {..}
仍然要非常小心,因为每个线程和每个循环都需要一个 edgeExplorer,例如,使用一个资源管理器进行双 for 循环将失败:)